{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 06 - 分组和虚拟回归\n",
    "\n",
    "\n",
    "## 分组数据回归\n",
    "\n",
    "并非所有数据点都是一样的。 如果我们再次查看我们的 ENEM 数据集，相比小规模学校的分数，我们更相信规模较大的学校的分数。 这并不是说大型学校更好或什么， 而只是因为它们的较大规模意味着更小的方差。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from scipy import stats\n",
    "from matplotlib import style\n",
    "import seaborn as sns\n",
    "from matplotlib import pyplot as plt\n",
    "import statsmodels.formula.api as smf\n",
    "\n",
    "style.use(\"fivethirtyeight\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Rg2z9jt16hTDhg0jKSmJtm3b8uijj5KTk8OFCxf45JNPGD9+PE5OTkB+jc2gQYNITU2lb9++NG3alL/++ovdu3ezb98+Nm7cSO/evQud48SJE3z44Yd07NiRsWPHcvXqVaysrAA4dOgQTz75JJmZmfTt2xd/f3+uXr3K7t27OXDgAJs3b6Znz55mvw4pKSn07dsXV1dXxowZQ0pKCjt37mTixIlcvXqVGTNmANC7d2/q16/Pzp07eeedd/QfaDr79+8nISGB0aNHF1pXlN69e9O9e3ciIiL47rvvePTRR83e11K5ubkMGTKE1NRUQkNDuXPnDt988w1jx45lx44drF69mj/++EP/+n3zzTe89NJL1KpVi6FDhxY6Xnx8PL1796Zp06ZMmDCBK1euEBYWxtChQ/niiy8YNGiQwfazZ89m7dq11K1blwEDBqDRaPj1119ZunQp+/fv5/vvv8fZ2bnQecaOHcuZM2fo2bMnbm5u1K9fv9hrXbhwIR9++CFubm4MHToUV1dXIiIieP/99wkPD+e7777DxcUFV1dX5syZw9mzZwkPD6dTp076D/ri8hpq1qwJwMWLF4stD8Do0aMBOHbsGP379zc4vqurq1nHMObixYv07t2bW7du0atXL4KCgvjrr78YM2aMySaCK1euMHDgQC5evEiHDh0YP3486enp7N+/n/HjxzNnzhyjNcOXL1+mZ8+ePPTQQzzxxBMkJyezc+dOnnzySYOa2+KuVVEUhg8fzi+//ELr1q0ZM2YMtra2XL16lcjISA4dOkTnzp1L/JpAfmDUt29fbG1teeyxx8jKymLXrl3MmjULtVrNmDFjitzf19eXOXPmsHjx4kJN/Pc+G7m5uQwdOpTExER69eqFtbU1e/fu5Y033iAjI4NXX33VYPtt27Yxffp0bG1t6devH3Xr1iU2NpZvvvmG7777jj179phVA2vpM6jz73//m40bN+Lq6kr//v2pXbs2V65cISoqiq1bt9KtWzeD7c297wA5OTkMGzaMo0eP0rBhQyZOnEh2djZ79uxh1qxZREZGsmrVKoPjf/HFFzz//PM4ODgwaNAgvL29iYqKYvXq1ezdu5d9+/bh4+Nj0TUCkJKSolS3P0ABlDlz5pj8K7j97t27FUAZOnSokpKSosycOVMBlNdee02/TWJiogIoPj4+BvuePn1aARQXFxeT53rnnXcM9lm+fLkCKM8++6xy9epVxdXVVenSpYt+fXR0tGJtba2MHj1aSUlJUXx8fBRASUxMLPbak5OTlVatWimAEhgYqLz77rvKjz/+qFy9etXkPtevX1d8fX0VQFm2bFmh9RcvXtSfOzk5WWncuLECKCtWrDDYLiwsTFGpVIq7u7ty5cqVQtcLKEuXLi10/Pj4eKVmzZqKm5ub8vPPPxusi4qKUmrUqKF4e3sr165dK/b6dfcDUIYMGaLcunVLv+7kyZOKi4uLYmtrq5w5c0a/fOHChQqgLFq0qNDx+vbtqwDKjz/+aNazV/BeHT16VFGr1UqjRo2Umzdv6rcZOnSoAii7d+8u9Nx26tTJ6HHnzJljch9AGThwoHL9+nX98s8++0z/XLZv315JSEjQr/v+++8VQGnevLnR9wGgzJw502DdgQMHFCsrK8XNzc3gWKtXr1YAZcCAAYWesddee00BlOnTpxt9jQIDA5WLFy+a/b7ev3+/Aih16tRRzp8/b/DMjxw5UgGUyZMnG32v3fueL+pvy5YtCqDY2toqEyZMUDZu3KicPXu2yH1092f58uVG148aNUoBlNOnT5t8ZkeNGmWwvHv37gqgvPnmmwbLt27davAZV3Bd165dFZVKpXz22WcGyy9duqQEBQUpKpVKOXz4sNF7XvDzLiUlRfnmm28UQOnVq5fZ13r06FEFUPr161doXXJyshIbG2vWPTD2ehV8b48fP15JSkrSr/v5558VKysrpVGjRmbfZ2Of58beW3379jX47I2JiVFcXFwUFxcX5caNG/rlv//+u2JnZ6fUr19fOXfuXKH3lpWVlRIUFFRmz+CyZcsUQGnatGmh91VycrLyxx9/3Nd9nzdvngIoPXr0MPisiY+PVx5++GEFUNatW6dffubMGcXW1lZxcnJSjh8/bnCsF154QQGUPn36mP0+KfhXrZuKFi9ebPKvKC+88ALu7u4sW7aMa9eumXWu1NRUk+dauXKlyf0cHBwYMWIER44c4a+//gLym1Zyc3MtbiYCUKlUfPnll4SEhHDu3DlefvllevbsiY+PD926dWPJkiXcunXLYJ99+/Zx6dIlevbsafSc7u7u2NvbA/lVmNHR0bRq1Ur/60unW7duDBgwgKSkJPbu3VvoOM2aNWP8+PGFlm/ZsoVbt24xZ84cmjRpYrCucePGjB07lsTExCKbKu5lZWXF/PnzUav/ecQfeughJk+eTHZ2Ntu2bdMvHzNmDPb29qxbt87gGAkJCRw4cICgoCBat25t9rl1mjVrxpgxY/jzzz/54osvLN7fEm+//bZBlfKQIUOwsbEhNTWVuXPnGtS8tWvXjvr163Pu3Dny8vIKHcvFxYWXXnrJYNkjjzzCkCFDSE5ONqhGXrFiBVZWVnz88ceFaieff/553N3dDV7rgl599VV9DaE5Nm7cqD9u7dq19ctVKhULFy7EwcGBr776ipycHLOPacyjjz7Ku+++i729PV988QVjxoyhefPmBAQEMGHCBH766af7Or45/v77byIiIqhXr16h5ou+ffsarbX4448/OHToEKGhoQwfPtxgnYuLCy+//DKKovD1118X2tfX15fnn3/eYJnuc+P33383u9y695ujo2OhdSqVSl+TcD8cHR1566239LW1AE2aNKF9+/b8+eefBk2GpWHx4sX6zz8ADw8PQkNDSU1NJSYmRr987dq1ZGVl8c477xTKIezcuTP9+vXjzJkznD9/vthzluQZXL16NQBLly4t9L5SqVTUrVu30D6W3Hfd++/ezxpXV1fmzZsH5LcU6Gzbto3s7GwmTZpUqPPJiy++SO3atdm/fz9Xrlwp9vW4V7VuKkqxICehIF0180svvcQ777zDsmXLit3Hx8fHaH6HOcaNG8enn37K+vXrmTdvHuvXr6dJkya0a9euRMfz8fFhz549REdHExERwenTpzl16pT+79NPP2X79u20aNECgF9//RXITxYuji4hrEuXLkbXd+vWjd27d3P69Gkef/xxg3WPPPKI0X107bl//PGH0XEpLly4AOTnXRTVfbygevXqGW166NSpEx9++KFB9/SaNWsydOhQNm/ezNGjR/VNCl9++SV5eXlMmjTJrHMa89prr7Fjxw7effddRowYcV9NB6ZoNBp8fX0NlllZWeHh4cGVK1eMNo14e3sTFxfHtWvXCn3ItmjRwmjTTqdOndi+fTtnzpxhxIgRZGRkcObMGdzc3ApVEevomglu3bpV6EvL1PNgSlHPnqenJ4GBgfz222/ExMQQGBho0bHvNXXqVMaOHUtERAS//PIL//nPf4iKimLnzp3s3LmTcePGmfW5UFK657N9+/ZYWxf+mO7UqVOhfBHd++jOnTtG30dJSUlA/vvoXs2bNzcIBHTq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CUpemRajVatWPPbYY8yfP7/w+YtoASiuZeBeK1asIDw8nI4dO7Jv3z4eeeQRfvzxx1I5T7du3VCr1UydOpUuXbpQt27dQtvogq+CzW65ubkG25jTJGdjY/jDXaVSlXpTHlRw4KIoCuvXr2fo0KE4OzsbrJsxYwabN29m/fr1REdHM2fOHBITE5kwYUIFldaQrRr8XAxvkp+LDWq1irsqO1RlmDgmhBDVmsoKlVXRzUwqK3tQWZV5UebNm8fx48f1gYROkyZN+OWXX9AWSA04fvw4tra2PPTQQ0D+j/C8PPOCq6ZNm/Lss8+yd+9eQkJC+Oqrr/Tn+fnnnw22PX78OHXr1i30vWmMWq1m9OjRHD16VJ9Heq9atWoBkJiYqF929uxZg21atGjB8ePH9fkwFalCv12PHDlCbGysQTORztChQ1m0aBHvvfcenTt35ueff2bbtm1FthWWJ2dVDmED6umDFz8XG77oXYcnwv+m0/bLxGZYS/AihBAlkIs9Dr79i9zGwTeUXEqW/GuJBg0aMH78eFatWmWwfNKkSSQmJjJ79myio6P5/vvveeONN3j66adxdHQEwNfXl99++434+HiSkpIMghyduLg4FixYwC+//MKlS5c4fPgwf/zxB40bNwbyf8QfO3aMRYsWceHCBbZt28by5cuLTHi914svvsjFixcZOHCgyWusV68e7777LhcuXOCnn34qNI7NpEmTSEtLY/z48fz+++/Exsayfft2zpw5Y3Y5SkuFfrN26dKFlJQUWrdubXT95MmTOXv2LNevX+fQoUN06tSpnEtomqLV0sAhl2PDfbg43p8V3b155dh1ohIzJN9FCCHuQ04uOAWMxcrBy+h6KwcvnAKeKvXEXFNeeuklg9wNgDp16vD1119z5swZOnfuzL///W+GDRumT6IFmDlzJra2trRv3x5/f3+jA6g6Ojpy4cIFnn76aR555BGmT5/O448/zrPPPgtAcHAw69atY/fu3XTo0IE33niDZ599lilTpphdfhsbG9zd3U12IbexsWHt2rXExcUREhLCokWLDK5Dd73h4eHk5OQwcOBAunTpwpo1awq9LuVBlZKSUvoNUFXM/Wbc31LsaLCucDJW7Hh/aqqKbqetjFRqNXcUG7K1+U1izqqcCu8pJb1WKje5P5VbRfUqcnV1LfH+arUae3U6aTEbyLi0FyUv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\n",
      "text/plain": [
       "<Figure size 576x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "np.random.seed(876)\n",
    "enem = pd.read_csv(\"./data/enem_scores.csv\").sample(200)\n",
    "plt.figure(figsize=(8,4))\n",
    "sns.scatterplot(y=\"avg_score\", x=\"number_of_students\", data=enem)\n",
    "sns.scatterplot(y=\"avg_score\", x=\"number_of_students\", s=100, label=\"Trustworthy\",\n",
    "                data=enem.query(f\"number_of_students=={enem.number_of_students.max()}\"))\n",
    "sns.scatterplot(y=\"avg_score\", x=\"number_of_students\", s=100, label=\"Not so Much\",\n",
    "                data=enem.query(f\"avg_score=={enem.avg_score.max()}\"))\n",
    "plt.title(\"ENEM Score by Number of Students in the School\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在上面的数据中，直观上，左边的点对我的模型的影响应该比右边的点小。本质上，右边的点实际上是许多其他数据点组合成一个。如果我们可以拆分它们并对未分组的数据进行线性回归，那么它们对模型估计的贡献确实比左侧的未捆绑点要大得多。\n",
    "\n",
    "这种同时具有一个低方差区域和另一个高方差区域的现象称为**异方差**。简而言之，异方差是指因变量的方差在各个特征变量的值域内方差不是恒定的。在上面的例子中，我们可以看到因变量方差随着特征样本大小的增加而减少。再举一个我们有异方差的例子，如果你按年龄绘制工资，你会发现老年人的工资差异大于年轻人的工资差异。但是，到目前为止，方差不同的最常见原因是分组数据。\n",
    "\n",
    "像上面这样的分组数据在数据分析中非常常见。原因之一是保密。政府和公司不能泄露个人数据，因为这会违反他们必须遵守的数据隐私要求。如果他们需要将数据导出给外部研究人员，他们只能通过对数据进行分组的方式来完成。这样，个人集合在一起，不再是唯一可识别的。\n",
    "\n",
    "对我们来说幸运的是，回归可以很好地处理这些类型的数据。要了解如何做，让我们首先采用一些未分组的数据，例如我们在工资和教育方面的数据。在这些数据集中，每个工人对应一行数据，所以我们知道这个数据集中每个人的工资以及他或她有多少年的教育。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>wage</th>\n",
       "      <th>lhwage</th>\n",
       "      <th>educ</th>\n",
       "      <th>IQ</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>769</td>\n",
       "      <td>2.956212</td>\n",
       "      <td>12</td>\n",
       "      <td>93</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>808</td>\n",
       "      <td>2.782539</td>\n",
       "      <td>18</td>\n",
       "      <td>119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>825</td>\n",
       "      <td>3.026504</td>\n",
       "      <td>14</td>\n",
       "      <td>108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>650</td>\n",
       "      <td>2.788093</td>\n",
       "      <td>12</td>\n",
       "      <td>96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>562</td>\n",
       "      <td>2.642622</td>\n",
       "      <td>11</td>\n",
       "      <td>74</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   wage    lhwage  educ   IQ\n",
       "0   769  2.956212    12   93\n",
       "1   808  2.782539    18  119\n",
       "2   825  3.026504    14  108\n",
       "3   650  2.788093    12   96\n",
       "4   562  2.642622    11   74"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wage = pd.read_csv(\"./data/wage.csv\")[[\"wage\", \"lhwage\", \"educ\", \"IQ\"]]\n",
    "\n",
    "wage.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果我们运行一个回归模型来找出教育与对数小时工资的关系，我们会得到以下结果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "      <td></td>         <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th> <td>    2.2954</td> <td>    0.089</td> <td>   25.754</td> <td> 0.000</td> <td>    2.121</td> <td>    2.470</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>educ</th>      <td>    0.0529</td> <td>    0.007</td> <td>    8.107</td> <td> 0.000</td> <td>    0.040</td> <td>    0.066</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_1 = smf.ols('lhwage ~ educ', data=wage).fit()\n",
    "model_1.summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在，让我们暂时假设这些数据有某种保密限制， 它的提供者无法提供个性化数据。 因此，我们请他将每个人按受教育年限分组，并只给我们平均对数小时工资和每个组中的人数。 这让我们只剩下 10 个数据点。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>educ</th>\n",
       "      <th>lhwage</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9</td>\n",
       "      <td>2.856475</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10</td>\n",
       "      <td>2.786911</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>11</td>\n",
       "      <td>2.855997</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>12</td>\n",
       "      <td>2.922168</td>\n",
       "      <td>393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>13</td>\n",
       "      <td>3.021182</td>\n",
       "      <td>85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>14</td>\n",
       "      <td>3.042352</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>15</td>\n",
       "      <td>3.090766</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>16</td>\n",
       "      <td>3.176184</td>\n",
       "      <td>150</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>17</td>\n",
       "      <td>3.246566</td>\n",
       "      <td>40</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>18</td>\n",
       "      <td>3.144257</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   educ    lhwage  count\n",
       "0     9  2.856475     10\n",
       "1    10  2.786911     35\n",
       "2    11  2.855997     43\n",
       "3    12  2.922168    393\n",
       "4    13  3.021182     85\n",
       "5    14  3.042352     77\n",
       "6    15  3.090766     45\n",
       "7    16  3.176184    150\n",
       "8    17  3.246566     40\n",
       "9    18  3.144257     57"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_wage = (wage\n",
    "              .assign(count=1)\n",
    "              .groupby(\"educ\")\n",
    "              .agg({\"lhwage\":\"mean\", \"count\":\"count\"})\n",
    "              .reset_index())\n",
    "\n",
    "group_wage"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不要怕！ 回归不需要大数据就可以工作！ 我们可以做的是为我们的线性回归模型提供权重。 这样，相对样本量稍小的群体，模型会更多地考虑样本量更大的群体。 请注意我是如何用 smf.wls 替换 smf.ols 的，以获得加权最小二乘法。 新方法会让一切变得不同，虽然这点不容易被注意到。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "      <td></td>         <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th> <td>    2.2954</td> <td>    0.078</td> <td>   29.327</td> <td> 0.000</td> <td>    2.115</td> <td>    2.476</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>educ</th>      <td>    0.0529</td> <td>    0.006</td> <td>    9.231</td> <td> 0.000</td> <td>    0.040</td> <td>    0.066</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_2 = smf.wls('lhwage ~ educ', data=group_wage, weights=group_wage[\"count\"]).fit()\n",
    "model_2.summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意分组模型中 edu 的参数估计与未分组数据中的参数估计完全相同。 此外，即使只有 10 个数据点，我们也设法获得了具有统计意义的系数。 那是因为，虽然我们的点数较少，但分组也大大降低了方差。 还要注意参数估计的标准误差是变得大了一点，t 统计量也是如此。 那是因为丢失了一些关于方差的信息，所以我们必须更加保守。 一旦我们对数据进行分组，我们不知道每个组内的方差有多大。 将上面的结果与我们在下面的非加权模型中得到的结果进行比较。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "      <td></td>         <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th> <td>    2.3650</td> <td>    0.082</td> <td>   28.988</td> <td> 0.000</td> <td>    2.177</td> <td>    2.553</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>educ</th>      <td>    0.0481</td> <td>    0.006</td> <td>    8.136</td> <td> 0.000</td> <td>    0.034</td> <td>    0.062</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_3 = smf.ols('lhwage ~ educ', data=group_wage).fit()\n",
    "model_3.summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参数估计值相对较大。 这里发生的事情是回归对所有点施加了相等的权重。 如果我们沿着分组点绘制模型，我们会看到非加权模型对左下角小点的重视程度高于应有的重视程度。 因此，该模型的回归线具有更高的斜率。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.scatterplot(x=\"educ\", y = \"lhwage\", size=\"count\", legend=False, data=group_wage, sizes=(40, 400))\n",
    "plt.plot(wage[\"educ\"], model_2.predict(wage[\"educ\"]), c=\"C1\", label = \"Weighted\")\n",
    "plt.plot(wage[\"educ\"], model_3.predict(wage[\"educ\"]), c=\"C2\", label = \"Non Weighted\")\n",
    "plt.xlabel(\"Years of Education\")\n",
    "plt.ylabel(\"Log Hourly Wage\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "归根结底，回归就是这个奇妙的工具，可以处理单个数据或聚合数据，但在最后一种情况下您必须使用权重。 要使用加权回归，您需要平均统计量。 不是总和，不是标准差，不是中位数，而是平均值！ 对于自变量和因变量都需要这么处理。 除了单一自变量回归的情况外，分组数据的加权回归结果与未分组数据的回归结果不会完全匹配，但会非常相似。\n",
    "\n",
    "![img](./data/img/dummy/heterosk.png)\n",
    "\n",
    "我将用在分组数据模型中使用附加自变量的最后一个例子来结束。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of observations: 10.0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "      <td></td>         <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th> <td>    1.8821</td> <td>    0.324</td> <td>    5.800</td> <td> 0.001</td> <td>    1.115</td> <td>    2.649</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>educ</th>      <td>    0.0257</td> <td>    0.021</td> <td>    1.198</td> <td> 0.270</td> <td>   -0.025</td> <td>    0.077</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>IQ</th>        <td>    0.0077</td> <td>    0.006</td> <td>    1.309</td> <td> 0.232</td> <td>   -0.006</td> <td>    0.022</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_wage = (wage\n",
    "              .assign(count=1)\n",
    "              .groupby(\"educ\")\n",
    "              .agg({\"lhwage\":\"mean\", \"IQ\":\"mean\", \"count\":\"count\"})\n",
    "              .reset_index())\n",
    "\n",
    "model_4 = smf.wls('lhwage ~ educ + IQ', data=group_wage, weights=group_wage[\"count\"]).fit()\n",
    "print(\"Number of observations:\", model_4.nobs)\n",
    "model_4.summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在此示例中，除了先前添加的教育年限之外，我们还包括 IQ 作为一个特征。运作机制几乎相同：获取均值并计数，回归均值并将计数用作权重。\n",
    "\n",
    "## 虚拟变量回归\n",
    "\n",
    "虚拟变量是我们编码为二进制列的分类变量。例如，假设您有一个希望包含在模型中的性别变量。该变量被编码为 3 个类别：男性、女性和其他性别。\n",
    "\n",
    "|性别|\n",
    "|------|\n",
    "|男 |\n",
    "|女|\n",
    "|女|\n",
    "|其他 |\n",
    "|男 |\n",
    "\n",
    "由于我们的模型只接受数值，我们需要将这个类别转换为数字。在线性回归中，我们为此使用了虚拟变量。我们将每个变量编码为 0/1 列，表示类别的存在。我们还将其中一个类别作为基本类别。这是必要的，因为最后一个类别是其他类别的线性组合。换句话说，如果有人向我们提供其他类别的信息，我们就可以知道最后一个类别。在我们的示例中，如果某人既不是女性也不是其他性别，我们可以推断该人的类别是男性。\n",
    "\n",
    "|性别|女性|其他|\n",
    "|------|:-----|:----|\n",
    "|男性 |0|0|\n",
    "|女性|1|0|\n",
    "|女性|1|0|\n",
    "|其他 |0|1|\n",
    "|男性 |0|0|\n",
    "\n",
    "在处理 A/B 测试时，我们已经处理了一种简单形式的虚拟回归。更一般地，当我们处理二元处理时，我们将其表示为虚拟变量。在这种情况下，**该虚拟变量的回归系数是回归线中截距的增量**，或处理和未处理之间的均值差异。\n",
    "\n",
    "为了更具体地说明这一点，请考虑估计高中毕业（12年级毕业）对小时工资的影响的问题（让我们暂时忽略混杂因素）。在下面的代码中，我们创建了一个处理虚拟变量“T”，指示受教育年限是否大于 12。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>hwage</th>\n",
       "      <th>IQ</th>\n",
       "      <th>T</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19.225</td>\n",
       "      <td>93</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16.160</td>\n",
       "      <td>119</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20.625</td>\n",
       "      <td>108</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16.250</td>\n",
       "      <td>96</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>14.050</td>\n",
       "      <td>74</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    hwage   IQ  T\n",
       "0  19.225   93  0\n",
       "1  16.160  119  1\n",
       "2  20.625  108  1\n",
       "3  16.250   96  0\n",
       "4  14.050   74  0"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wage = (pd.read_csv(\"./data/wage.csv\")\n",
    "        .assign(hwage=lambda d: d[\"wage\"] / d[\"hours\"])\n",
    "        .assign(T=lambda d: (d[\"educ\"] > 12).astype(int)))\n",
    "\n",
    "wage[[\"hwage\", \"IQ\", \"T\"]].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "虚拟变量作为一种开关工作。 在我们的示例中，如果虚拟变量值为1，则预测值是截距加上虚拟变量对应的系数。 如果虚拟变量为值0，则预测值只是截距。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "      <td></td>         <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th> <td>   19.9405</td> <td>    0.436</td> <td>   45.685</td> <td> 0.000</td> <td>   19.084</td> <td>   20.797</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>T</th>         <td>    4.9044</td> <td>    0.626</td> <td>    7.830</td> <td> 0.000</td> <td>    3.675</td> <td>    6.134</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "smf.ols('hwage ~ T', data=wage).fit().summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在这种情况下，当此人未完成 12 年级（虚拟变量为0）时，平均收入为 19.9。当他或她完成 12 年级（虚拟变量为1）时，预测值或平均收入为 24.8449 (19.9405 + 4.9044)。因此，虚拟系数捕捉了均值的差异，在我们的案例中为 4.9044。\n",
    "\n",
    "用更正式的表述来讲，当因变量是二元变量时，就像干预指标的情况一样，回归完美地捕捉了 ATE。这是因为回归是条件期望函数 (CEF) \\\\(E[Y|X]\\\\) 的线性近似，在这种特殊情况下，CEF 是线性的。即，我们可以定义 \\\\(E[Y_i|T_i=0]=\\alpha\\\\) 和 \\\\(E[Y_i|T_i=1] = \\alpha + \\beta\\\\)，这导致以下 CEF\n",
    "\n",
    "$\n",
    "E[Y_i|T_i] = E[Y_i|T_i=0] + \\beta T_i = \\alpha + \\beta T_i\n",
    "$\n",
    "\n",
    "和 \\\\(\\beta\\\\) 是随机数据的平均值或 ATE 的差异\n",
    "\n",
    "$\n",
    "\\beta = [Y_i|T_i=1] - [Y_i|T_i=0]\n",
    "$\n",
    "\n",
    "如果我们使用额外的变量，虚拟变量系数将成为 **条件** 均值差异。例如，假设我们将 IQ 添加到之前的模型中。现在，虚拟系数告诉我们 12 年级 **在保持 IQ 固定** 的情况下应该期望增加多少。如果我们绘制预测图，我们将看到两条平行线。从一行跳到下一行表示我们完成高中后平均收入的预期数量。并且，这个差异效果是恒定的。即，无论您的智商如何，每个人都从高中毕业学历中有同样的受益。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "m = smf.ols('hwage ~ T+IQ', data=wage).fit()\n",
    "plt_df = wage.assign(y_hat = m.fittedvalues)\n",
    "\n",
    "plt.plot(plt_df.query(\"T==1\")[\"IQ\"], plt_df.query(\"T==1\")[\"y_hat\"], c=\"C1\", label=\"T=1\")\n",
    "plt.plot(plt_df.query(\"T==0\")[\"IQ\"], plt_df.query(\"T==0\")[\"y_hat\"], c=\"C2\", label=\"T=0\")\n",
    "plt.title(f\"E[T=1|IQ] - E[T=0|IQ] = {round(m.params['T'], 2)}\")\n",
    "plt.ylabel(\"Wage\")\n",
    "plt.xlabel(\"IQ\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果我们把这个模型放到一个方程中，我们就会明白为什么：\n",
    "\n",
    "$\n",
    "工资_i = \\beta_0 + \\beta_1T_i + \\beta_2 IQ_i + e_i\n",
    "$\n",
    "\n",
    "这里，\\\\(\\beta_1\\\\) 是均值的条件差，它是一个常数值，在我们的例子中是 3.16。我们可以通过添加交互项来使这个模型更加灵活。\n",
    "\n",
    "$\n",
    "工资_i = \\beta_0 + \\beta_1T_i + \\beta_2 IQ_i + \\beta_3 IQ_i * T_i + e_i\n",
    "$\n",
    "\n",
    "事情变得有点复杂，所以让我们看看每个参数在这个模型中的含义。首先，截取 \\\\(\\beta_0\\\\)。这个坏男孩没有特别有趣的解释。这是治疗为零（此人未从 12 年级毕业）且 IQ 为零时的预期工资。由于我们不希望任何人的 IQ 为零（实际上……没关系），因此该参数不是很有意义。现在，当我们转向 \\\\(\\beta_1\\\\) 时，我们遇到了类似的情况。这个参数是我们在完成 12 年级 **当 IQ 为零**时应该期望增加多少工资。再说一次，由于智商永远不会为零，因此它没有特别有趣的含义。现在， \\\\(\\beta_2\\\\) 更有趣一些。它告诉我们 IQ 增加了多少 **未接受治疗的**的工资。所以，在我们的例子中，它类似于 0.11。这意味着每增加 1 个 IQ 点，未完成 12 年级的人应该期望每小时增加 11 美分。最后，最有趣的参数是\\\\(\\beta_3\\\\)。它告诉我们 IQ 对 12 年级毕业的影响有多大。在我们的例子中，这个参数是 0.024，这意味着对于每一个额外的 IQ 点，从 12 年级毕业会给 2 美分。这可能看起来不多，但比较一下 60IQ 和 140IQ 的人。第一个将获得 1.44 的工资增长（60 * 0.024），而智商为 140 的人从 12 年级毕业时将获得额外的 3.36 美元（60 * 0.024）。\n",
    "\n",
    "用简单的建模术语来说，这个交互项允许治疗效果根据特征的级别（在这个例子中只有 IQ）而改变。结果是，如果我们绘制预测线，我们将看到它们不再平行，并且那些 12 年级 (T=1) 毕业的人在 IQ 上有更高的斜率，高智商比低智商受益更多。这有时被称为效果修改或异质治疗效果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb4AAAE0CAYAAABTplZXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd1hT59sH8G8WSQgIKggOQAXcuBVcLY5aFedbcdTauhVnVSxi3aKUFkdbt5ZWK1jRUitqtbZOFKRu68SFG1yskJ3z/sFPWgqcJEAm9+e6vNok35zcOUDunHOe8xxOVlYWA0IIIaSS4Jq7AEIIIcSUqPERQgipVKjxEUIIqVSo8RFCCKlUqPERQgipVKjxEUIIqVSo8RFCCKlUqPHZuMjISDg7Oxf+mzZtmrlLKrOgoCD4+fmZ7PXatWtXZN3Fxsaa7LX1ERsbW6S+AQMGmLukMgsJCYGzs7PJXu+DDz4osu4iIyNN9trE/KjxWZl//7GW9m///v3Fnjd8+HCEhYWhd+/eAIp/aOrzryJt374dn376Kbp3746aNWvC2dkZixcvLtOy3n5oltaYsrOzsXLlSvTo0QN169ZFjRo10LhxY4wcORK//fZbqcsdP348wsLC0KlTpzLVZSg/Pz+dP4P169cXe16fPn0QFhaGYcOGAQBOnTpl8M82PT29Qt/LkydPMHXqVDRq1Ag1atSAn58f5s6di6ysLIOW8/aLW2mNSS6XY9OmTejbty+8vb3h6uqKBg0aIDg4GD/99BO0Wm2JzxsyZAjCwsLQp08fg9+bsd26dQujRo2Cj48P3Nzc0LZtW6xYsQIymaxMy7t06RLGjRuHJk2aoEaNGvD19UWfPn2wc+fOYlmVSoW1a9eiS5cuqFWrFmrXro3u3btj+/btYBjbmeuEb+4CSNmEhYWV+liDBg2K3ffhhx+iS5cuhbf9/PyKLSM7OxsbN25ElSpVEBISUnHFlmD+/PnIycmBs7Mz3N3dcf/+faO8TkpKCkaOHIkXL17Ax8cHH3zwAZycnJCeno4jR44gMTERQUFB2LJlC+zt7Ys8d8KECQAKPnxPnz5tlPpKMmnSJDg5OZX4WLt27YrdFxQUhBEjRhTe9vT0LPH3IyoqCkDJvzulvV5ZPHjwAD179kRmZib69OmDBg0a4Pz589i4cSP+/PNPHD58GNWqVSv369y6dQvDhw/HvXv3ULt2bQQFBcHFxQXPnj3DkSNHcOTIEXz//feIjY2Fi4tLkecOHToUQMEXwIMHD5a7lopy/vx59O/fH0qlEgMGDEDt2rVx8uRJfPnllzh58iR+/fVXCIVCvZe3efNmzJ07Fw4ODujVqxfq1KmDrKws3LhxA0eOHMHw4cMLs0qlEoMHD8bJkydRp04dDBs2DDweD3/88QemT5+O1NRUrF271hhv2+So8Vmp8PDwcj2/efPmaN68eZH70tPTsXHjRjg5OZV7+brExMSgQYMG8PT0RGxsLKZMmVLhr3H79m0EBwcjLy8PERERmDx5Mrjcf3ZyvHr1CmPHjsWBAwcwYcIE7Nixo8JrKIuQkBB4eXmV+fleXl4l/vzeNj5j/2xnzZqFzMxMREVFYeLEiYX3z5s3D+vXr8eyZcuwevXqcr3GixcvMGjQIDx9+hRTp07FwoULYWdnV/i4VCrFzJkzER8fj2HDhuHgwYNFHrdEGo0GkydPhlQqRVxcXOHWqFarxahRo7Bv3z6sX78eM2fO1Gt5R48eRVhYGFq0aIE9e/YUa/4qlarI7a1bt+LkyZNo27Yt9u7dCwcHBwAFW9VDhgzBjh070KtXL/Tt27cC3q150a5OYhY9evSAp6enUV/js88+Q25uLqZNm4apU6cWaXoAUL16dezYsQOenp7Yv38/Dhw4YNR6KoMHDx7g6NGj8PLywvjx44s8Fh4eDolEgl27dkEqlZbrdZYtW4anT59i4MCBiIiIKNbUJBIJNmzYgLZt2+LcuXP47rvvyvV6ppCUlIRbt26hU6dORXbBcrlcLF26FEDBF0Z9dzkuWLAAHA4H3333XbGmBwACgaDI7cTERABAaGhoYdMDAJFIVPhlafPmzYa9KQtFjY/YpAcPHuD48eMQCoWs35AdHBwwdepUAAUfKqR8Tp48CQDo1q1bsS8ajo6O8Pf3R35+Ps6dO1fm15DJZIiPjwfAvsufx+MhNDQUgHX8bE+dOgWg4Evhf9WtWxc+Pj549OgRHjx4oHNZ169fx7Vr19ChQwfUq1cPJ06cwDfffIO1a9fixIkTJR77zMjIKHytkl4fAJKTk4ttKVoj2tVppdhGoRl7V9b69euRnZ2td97T07PIMShTSElJAQC0bNkSVatWZc1269at8DlarbbYB7apbdiwodRjbsYe/RgbG4uHDx/qnXdycsLkyZMLb6elpQEA6tevX2Le29sbR48exZ07d/Duu++WqcaLFy9CLpejZs2aaNy4MWv2nXfeAY/HQ1paGjIzM1GjRo0yveZb6enpiIuLM+g5QUFBxQ4rlESfdXfnzh3cuXMH9erVY13WhQsXABTs9u7duzfOnj1b5PGmTZvixx9/LPJaLi4uuHfvHtLT09GoUaMi+bfNVqVS4f79+yWOI7Am1Pis1NvjNSUxduPbsGEDHj16pHe+U6dOJm98b7+91q5dW2f2bUYqlSI7O1tnozS2jRs3lvrYhx9+aNTGFxcXZ9BAHg8PjyKNLycnB0Dpg2WqVKkCAAZ9cfovQ3629vb2qFatGl68eIGnT5+Wu/E9fPiQ9W+vJJ6enno1vopcdy9fvgQA7Nq1C25ubvjpp5/QsWNHvHz5ElFRUdi1axeCg4ORnJxcuJv4/fffR2pqKqKjo9GlS5fCwV4KhaLIezZ0ZK4losZnpcz5y3f16lWzvba+3h4H4XA4OrP/zsjl8nK97qlTp5CUlFTkPkO3eC9fvlyuwS3lYezjnIb8XCp6GQqFosyv+VaXLl3M9rdnyPvWaDSF/92wYUPh1nWVKlWwceNG3L59GxcvXsS+ffswePBgAAWjifft24e//voL/v7+6NmzJ7hcLv7880+8ePECHh4eePToEXg8npHeoelQ4yM2yd3dHQDw+PFjndm3GS6XW+6tvaSkpGJbBObY4jUXXVslubm5RXJlYcjPNj8/H69fvwYAuLq6lvk1TaEi193bvQKOjo7FdilzOBz06dMHFy9exPnz5wsbn0QiwcGDB/H111/j119/xY4dOyAUCtGpUyfExsbi448/BoASB8pYG2p8xGDWcIwvICAAQMHJu1lZWay7B48fPw4AaNy4MUQiUbleNzw83Oi7mo2pvMf4fH19AQB3794tMf/2fh8fnzLX2KpVK4hEIjx79gw3b94sdjzq35KSkqDRaODs7FzioA1DGfMYX0Wuu7eZ0prk27+H/+7hkEgkmDdvHubNm1fk/levXuHOnTtwcXEx296IikSNjxjMGo7x1a1bF4GBgTh+/DjWrFlT6qwwUqm08KTc4OBgE1Zomcp7jO/tJAlHjx4tNlAoNzcXZ8+ehVgsRtu2bctco1gsxpAhQ7B9+3Z8+eWXpY7Y1Gq1iI6OBgD83//9X4UMWjLmMb4uXbogOjoaf/zxB2bNmlXksQcPHuDOnTvw8PDQq4G3a9cODg4OePbsWYlf/G7cuAEAejexbdu2gWEYm/kbocZHDGYNx/iAggFA3bt3xzfffAM3NzdMmjSpyPGR169fY9y4cXjw4AEaNGiAcePGmbFay1DeY3z16tVDt27dcPToUWzZsqXICeyRkZGQSqUYPXo0JBJJuV5n/vz5OHLkCBISEuDp6YnPP/+8yHlpUqkUs2fPRmpqKmrUqFF4WkN5GfMYX+fOndGwYUOcOXMGBw8eLHIC+6JFiwAAY8aMKfI7/HaUJVB0xiZ7e3uMGDECmzZtwtKlS7Fy5crC5127dg1xcXHg8/nF5nfNyckptpV44sQJREdHw8XFRe+T5y0dNT4rxXY6Q48ePUqc2sqSbN++HcnJyQBQ+If7+++/F47Yq169OiIiIsr1Gg0bNsTu3bsxcuRIhIeHIyYmBoGBgXB0dMSjR49w+PBh5OTkwN3dHfHx8UVO2jUnttMZ2rVrV+J5XpZk5cqV6NmzJ8LCwnDixAk0bNgQ586dw6lTp+Dj44MFCxaU+zVq1KiBvXv3YtiwYVizZg327NmD7t27F5my7MWLF6hSpQri4uJQq1atCnhnxsXj8bBu3Tr0798fn3zyCQYMGIA6dergxIkTuHjxIgICAopsXQPA06dP0b59ewDFB7x9/vnnOHPmDGJiYnDp0iUEBATg5cuXSExMhFwuR2RkZLHTItq3b4+mTZvC19cXIpEIV65cwbFjx+Dk5IS4uLhyj4q1FNT4rBTb7hYnJyeLb3zJycnFJsm9fv06rl+/DqBgF1p5Gx8AdOjQAefOncPWrVvx22+/YdeuXYXDxgFg5MiRiIiIqNC5KsuL7XSGSZMmWXzjq1evHo4fP44VK1bgjz/+wJEjR+Dm5oaJEydi7ty5FXa6yNuto23btiExMRH79u1DdnZ24cnZvXr1wpo1awoHw1iDtm3b4ujRo/jiiy9w7Ngx5ObmwsPDA5999hlmzpxp0DydVapUwW+//YbVq1dj79692Lp1K0QiEQICAjBt2rTC81f/bciQIfjjjz+QmpoKpVKJOnXqYNKkSfj000/h5uZWkW/VrKjxWRljDqX28vIy2VDtDRs2YMOGDSZZlrOzM0JDQ4vs7tq0aRPCwsKQnp5uMXM4GnsXsimH4deuXRvr1q0r93J0DRYSi8WYNGkSJk2aVHjf/v378fHHH+Phw4cW87M1RKNGjfDDDz/oldX1N+vg4IAFCxbovZW9dOnSwunRbBlNWVZJ9OvXz+qvx1eRJk6ciJCQEJw8eRIfffRRied4vb0en6GDGUxtypQpVn89vorUt29fLF++HNevX8fAgQNLbAxvr8dnjMnRieWjLT4b17lz5yK3W7RoYaZKLM/y5ctRp04d5OTk4MKFC+jQoUORx8ePH49Xr14V3jblRXD18d9LS1XEcH1bERISAolEgidPniAlJQW9evUq8viQIUOKjCz9798JsW2crKws27m6ILFpQUFBePjwodWMKiX6CwkJwc6dO21iOixi+WiLj1iNDz/8sFxzPBLLFRQUZPTLVBHyFm3xEUIIqVRocAshhJBKhRqfDXp7XS9SMlo/7Gj9sKP1w84a1g81PkIIIZUKNT5CCCGVilkb35YtW9CxY0d4eHjAw8MD7733Hg4fPlz4OMMwiIyMRKNGjeDu7o6goKDCWcXZ/Prrr/D390eNGjXg7++PxMREY74NQgghVsSsja9WrVpYsmQJTpw4gWPHjuGdd97BiBEj8PfffwMAvv76a6xbtw5RUVE4evQoXF1dMWjQoMILMpYkNTUVY8aMQXBwME6dOoXg4GCMGjUK586dM9XbIoQQYsEs7nSGunXrYtGiRRg1ahQaNWqE8ePHF86xKJPJ4Ovri2XLlmH06NElPn/06NF48+YN9u7dW3jfgAED4OLigu+++87getRqNaRSadnejJmUdGkRU5NIJODzLfM00bS0tMKLfpLiaP2wo/XDzhrWj8V8Mmk0GuzduxdSqRTt27dHeno6MjIyiswgLhaL0bFjR5w9e7bUxvfXX39hwoQJRe7r3r07Nm/ebHBNarUaubm5cHZ2LnINLEsnFArLfSXx8mAYBllZWXB0dLTY5kcIsVC5WeA9SIPWvQ4Y15pGeQmzfypdu3YNPXv2hFwuh0QiwY4dO9C0aVOcPXsWAODq6lok7+rqimfPnpW6vIyMjBKfk5mZyVpHSUNw7ezsUKNGjRInMLZ0crncrK8vEonw5MkTKJVKs9ZRGmsYcm1OtH7Y0fphV5b1w5Pno/GG+RBICw5lMRwu7nz4KfLqNS5TDWxbnWZvfL6+vjh16hSys7Oxb98+hISEYP/+/YWP/3dLi2EYnVtfZXlOSSspOzsbYrFY11uwOHK53KxbfG85Oztb1HXu3rKGXTHmROuHHa0fdgavH7UaopWfgX/9QpG7OYwWdR/egKJn/wqu0AIan52dHerXrw8AaNWqFS5cuID169cXHtfLzMxEnTp1CvMvX74stkX3b25ubsW27nQ9hxBCiIkxDOx2fAO7P34pNaLxLtvWni4Wdx6fVquFUqmEl5cX3NzccOzYscLH5HI5kpOT4e/vX+rz27VrV+Q5AHDs2DHW5xBCCDEd/p+/wmFUV/am59MM6sB+xnl9oyxVT4sXL0bPnj1Ru3Zt5OXlYc+ePUhKSkJ8fDw4HA5CQkKwcuVK+Pr6wsfHB9HR0ZBIJBg8eHDhMvr37482bdpg0aJFAIBJkyahT58+WLVqFfr27Yv9+/fj1KlTOHTokLneJiGEEAC8q6kQR3+mMyeN+hGMu4fR6jBr48vIyMCECROQmZmJKlWqoGnTptizZw+6d+8OAJgxYwZkMhnmzJmDrKwstGnTBgkJCXB0dCxcxv3791G7du3C2/7+/oiJiUFERAQiIyNRr149xMTEFLnopC1zdnZmfXz48OHYsGGDQcuUy+WYOXMmLl++jNu3b8Pf3x8HDhwoT5mEkEqE+/ge7D8fozOXH74G2kYtjV6PxZ3HZ0mys7MtcnAGm4yMDCgUCgiFQhw+fBjTp0/HrVu3Ch8XiUQGvyepVIr58+ejRYsW+P3335Gdna1X47PU9UeDE9jR+mFH64fdv9cPJ/s17GcGg6PRsD5HPi4M6i69TVEeAAsY3EIqlpubW+GozrdNx83NrVzLlEgkWL16NYCC00/oYrCEEFZKBcTLpoD38A57LGg4lEMmmqiof1DjKwOHTwJN+np5245X+DIDAgLw6NGjUh/38PBASkpKhb8uIcSGabXw2vsdHP5m/+xQt+wA+YwIgMszUWFFUeOrpOLj46FWq0t9nGZcIYQYQpAYC+GeLawZrYs78iNiALG9iaoqGX26VVKenp7mLoEQYgN4f52AeO0inTnpql1gqpfvsEtFocZXSdGuTkJIeXDv3YT9kkk6c/mLNkJbv5EJKtIfNb4yMMYxN1OjXZ2EkLLgvMqAZNZQnTnZ1CXQtHvXBBUZjj7dKilDd3XevHkTSqUSr169glQqxZUrVwAAzZs3N0Z5hBBLI8uH/fwx4L58zhp72vX/UGXUdBMVVTbU+IhegoODi+wafeeddwAAWVlZ5iqJEGIKGjVEX88H/zL7oQ9Vp/ehGD8XGXfuwLxXA9WNGp8NGzBgQIU1pqtXr1bIcggh1sNu1ybYHdzJmtF4NYBs/reAndBEVZUfNT5CCCFF8E/+BtF3UawZhi9A/up4MFWqmqiqikONjxBCCACAd+MixF/M1JnLX/49tHXqmaAi46DGRwghlRzn+SNIwkbqzMlCv4LGr50JKjIuanyEEFJZ5WVDEvohODIpa0z+8Uyouw8wUVHGR42PEEIqG5US4i9mgXfnb9aY8r0PoBwxFeBwTFSYaVDjI4SQyoJhIPx+JQQn9rPG1E1aQz77S8BGJ7KwzXdFCCGkCMHh3RDGrWPNaJ2qIj9yOyBxZM1ZO2p8hBBiw3iXzkC8ep7OnPSrODA1apmgIvOjxkcIITaI+/AO7BeM05nL//xbaBv4maAiy0GNjxBCbAjnzUtIPh2sMyef+DnUHd8zQUWWh2vuAkjFcnZ2hru7O5ydnUv8FxISUqblXrt2DX369IG7uzsaN26MqKgoMAxTwdUTQspMIYd9+Cc6m55ywCfI23a80jY9gLb4bM6tW7egUCggFApx+PBhTJ8+Hbdu3Sp8XCQSGbzMnJwcDBo0CB07dsTRo0eRlpaGKVOmwN7eHtOmTavI8gkhhtJqIVq/BPy/TrDG1O3ehXzyIoBL2zvU+GyMm5sb5HI5RCIRnJycCu8rj927d0Mmk2HDhg0Qi8Vo0qQJbt++jfXr12Pq1Kng2Ng5PoRYC8EvP0C49wfWjLamJ/KXbAKEYtMUZQWo8ZWB9Ggvk76epNuhCl+mIVdgT01NRYcOHSAW//OH0717dyxfvhzp6emoW7duhddHCCkdP/lPiDYu05mTrt4NppqrCSqyLtT4KilDrsCemZmJWrWKDnN2dXUtfIwaHyGmwU37G/YRU3Xm8pdugdbL1wQVWSezNb5Vq1YhMTERd+7cgZ2dHdq2bYtFixahSZMmhRlnZ+cSnztu3DhER0eX+Fh6ejpatGhR7P49e/agR48eFVO8DTD0Cuz/3Z35dmAL7eYkxPg4L55BEjpcZ0726QpoWnU0QUXWzWyNLykpCWPHjkXr1q3BMAxWrFiBgQMH4uzZs6hateD6Tv8elAEAFy9exLBhwzBw4ECdy//555/RrFmzwttvl0kKGLKrs0aNGsjMzCzy+MuXLwH8s+VHCDECaS7swz8BN/s1a0wxfApUvYJNVJT1M1vjS0hIKHJ706ZN8PT0REpKCnr37g2g+KCMgwcPwsfHB507d9a5/GrVqpV7UEdpjHHMzdQM2dXZvn17LF68uHDQDAAcO3YMNWvWhJeXl9FrJaTSUashWhUG/rXzrDHVu0FQjA61uUmkjc1ijvHl5eVBq9WWunszNzcXCQkJCAsL02t5I0eOhFwuh7e3NyZPnowBA2znkhoVwZBdnYMHD0ZUVBQmT56M0NBQ3LlzB2vWrMFnn31GuzoJqUgMA7vYtbA78jNrTOPTFLK5qwGBnYkKsy0W0/jmzp0LPz8/tG/fvsTHf/75ZygUCgwfzr6f28HBAcuWLUNAQAD4fD4OHjyI0aNHY8OGDRg6dKgxSrd5Tk5O+OWXXxAaGoquXbvC2dkZU6ZMwdSpug+yE0L0wz/6K0TbVrNmGJE9pNFxgGPJGwhEP5ysrCyzT78xb948JCQk4NChQ6WOEOzatSu8vLzwww8/GLz82bNnIzk5GWfOnCk1k5aWVuw+kUhEx7DK4cWLF5DL5eYugxCL5njvOnzi2BseAFwPWQZFdXcTVGQbfH1LH9Vq9i2+8PBwJCQkIDExsdSmd+XKFVy8eBELFy4s02u0adMGsbGxrJmSVlJ2dnaZZjoxt38fizOnKlWqwMPDw9xlFJOWlsb6R1HZ0fphV1Hrh/PkASTzRunMyeauhqZxKxg2Dtt8rOH3x6yNLywsDAkJCdi/fz8aNGhQam7btm3w9PREYGBgmV7n6tWrRhvoQgghhuDkvIH9rCHgqFSsOfmYOVC/G2SiqioXszW+0NBQ7Nq1Czt27ICzszMyMjIAABKJBA4ODoW5/Px87N69G9OnTy9xIMWSJUtw/vx57Nu3DwAQFxcHgUCA5s2bg8vl4tChQ9i6dSsWL15skvdFCCElUiogXj4NvAe32WN9hkE5dJKJiqqczNb4tm7dCgDFRluGhYUhPDy88HZCQgKkUilGjBhR4nKeP3+O+/fvF7kvOjoajx49Ao/Hg7e3N9auXUsDWwgh5sEwEG75AoLTh1lj6hYBkM+IAHhmPwJl8yxicIulys7OLpzo2ZpYyjE+S11/1nAMwpxo/bAzZP0IDuyEMH4Ta0Zb3Q35y2MAsaQiyjM7a/j9oa8WOjAMQ+eqlQFdq49UZrxzpyD+doHOnHTlT2BcaKSmqVHjYyGRSJCVlQVnZ2dqfgZgGAZZWVlwdHQ0dymEmBT3/k3YL9Z9fC5/4QZovRuboCJSEmp8LPh8PhwdHZGTk2PuUgySk5ODKlWqmLUGR0fHItOeEWLLOK8yIZk1RGdONmUxNO0DjV8QYUWfTDrw+XyLPE7FJjMz0yLPnyPE5sjyYb9gHLgvnrLGFIPHQdXvIxMVRXShxkcIIYbSaiD6ZiH4F0+zxlQdekAxYR7A5ZqoMKIPanyEEGKAmkcT4BDxG2tG4+kD2YJ1gJ3QRFURQ1DjI4QQPfCTDkG05Qs4sGQYHg/5q3eDcapmsrqI4ajxEUIIC+7NS7CP/FRnLj8iBlqP+iaoiJQXNT5CCCkB98412C+bojMnmx0FTXN/E1REKgo1PkII+RfO6xeQzAzWmVOMnAFVj0EmqIhUNGp8hBACAEoFHMa/rzP2om1XiKcuBGhSC6tFjY8QUrkxDOxnBoP75iVrTN2oJeRzovH4/n34UtOzatT4CCGVlnBjBATJf+jMSb/9BUyVqiaoiJgCNT5CSKUjOLwbwrh1OnP5izZCW7+RCSoipkSNjxBSafCu/gVx9BydOfnEz6Hu+J4JKiLmQI2PEGLzOM8fQxKme65MZe+hUA4LMUFFxJyo8RFCbFd+HhxC+uqMaXyaQbZgrQkKIpaAGh8hxPZoNZCMeQ8cRqszmhfzB8Cjj8LKhH7ahBCbIoqaBf71CzpzeesTAQldLLkyosZHCLEJdj9/B7t9P+rMSSO3ganlZYKKiKWixkcIsWq81OMQr1usMyebGQlNyw7GL4hYPGp8hBCrxE1Pg/3C8TpziiEToAr60AQVEWtBjY8QYlU4OW8gmaZ7cmh123cgn7bUBBURa0ONjxBiHdQqOIzVfVI541AF0rW/0iTSpFRcc73wqlWr0LVrV3h4eMDb2xtDhw7F9evXi2RCQkLg7Oxc5F+PHj10LjspKQnvvvsu3Nzc0KJFC8TExBjrbRBCjI1hIA4fpVfTy9v8G6Tr9lHTI6zMtsWXlJSEsWPHonXr1mAYBitWrMDAgQNx9uxZVK36z2SwgYGB2LRpU+FtOzs71uU+ePAAQ4YMwYgRI7B582akpKRg9uzZqF69OgYMGGC090MIqXjCH1ZCcCxRZ0668icwLu4mqIjYArM1voSEhCK3N23aBE9PT6SkpKB3796F9wuFQri5uem93O+//x7u7u746quvAAANGzbEuXPnsHbtWmp8hFgJ/rFEiH5YqTOX//k30DZoboKKiC2xmGN8eXl50Gq1cHZ2LnJ/cnIyfHx84OTkhE6dOmHBggVwdXUtdTmpqano1q1bkfu6d++OnTt3QqVSQSAQGKV+Qkj5cW9dgf2K6Tpz8tGhUAfqnoqMkJJYTOObO3cu/Pz80L59+8L7evTogX79+sHLywsPHz5EREQE+vfvj+PHj0MoFJa4nMzMTAQGBha5z9XVFWq1Gq9evYK7O+0OIcTScF4+h2T2MJ05Vdf+UIyaZYKKiC2ziMY3b948pKSk4KYBuKIAACAASURBVNChQ+DxeIX3f/DBB4X/37RpU7Rs2RJ+fn44fPgw+vfvX+ryOP85sM0wTIn3/1taWlpZy7dItvZ+KhqtH3amWj9cpQItvpyqMyerURs3xy8qGLRiAT87+v1hZwnrx9fXt9THzN74wsPDkZCQgMTERNStW5c1W7NmTdSqVQv37t0rNVOjRg1kZmYWue/ly5fg8/moVq1aqc9jW0nWJi0tzabeT0Wj9cPOJOtHq4VkSn9w8vN0RvO+OwLwBbCUnxj9/rCzhvVj1sYXFhaGhIQE7N+/Hw0aNNCZf/XqFZ49e8Y62KV9+/Y4cOBAkfuOHTuGVq1a0fE9QiyA6JsF4J8/pTMn/fYXMFWq6swRYiiznccXGhqKuLg4bN26Fc7OzsjIyEBGRgby8gq+Aebl5WH+/PlITU1Feno6Tp06hWHDhsHV1RV9+/5zUHvixImYOHFi4e3Ro0fj6dOnmDt3Lm7duoXt27cjLi4OU6fq3p1CCDEewf5YOHwSqLPp5S/dgrxtx6npEaMx2xbf1q1bAaDYKQZhYWEIDw8Hj8fD9evX8dNPPyE7Oxtubm7o0qULvv/+ezg6/nMpkcePHxd5ft26dREfH4958+YhJiYG7u7uiIqKolMZCDET3qVkiFeH68zJpi6Gpl2g8QsilZ7ZGl9WVhbr42KxuNi5fiX5725NAOjcuTNOnjxZ5toIIeXHefIAknmjdOaU/UdC+cFY4xdEyP+YfXALIcTG5OXAYUrpo67fUjdtA/lnuk9SJ6SiUeMjhFQMjRoOY3TPpcvw+JBuPQxweTqzhBgDNT5CSLmJl04G7+51nbm8jQcAscQEFRFSOmp8hJAys9u5HnaH4nXmpFE7wLjXMUFFhOhGjY8QYjD+6d8h2rxCZ072WTQ0TduaoKLKTZN7D8q0DeCKa4Ff8z3wnJuZuySLRo2PEKI37t0bsF8aojOnGDEVqp6DTVBR5abOOAHFtcjC29qsq1A//wPijtvAFbqYsTLLRo2PEKKbNBcOk/vpjKk6vgfFxM9NUFDlxTBaqO5+B9XDn0sJaMBIHwPU+EpFjY8QUjq1CuIvQ8G7dZk1pnVxQ370T3TlcyNi1FLIryyGNusqa47r4A2uUyMTVWWdqPERQopjGNj9+DXs/tyrM5q35TBgV/Jlwkj5afMfQ5Y6BdAqdGY54loQtYoChycyQWXWixofIaQIl7+OwiFivM6cdM0eMFVpd5qxqF+eheLKIr2yPLeuEDaeBQ6XJuLXh8GN7/Hjx1i1ahVOnjyJly9fIjY2Fp06dcKrV68QFRWFESNGoEWLFsaolRBiRLzLZyFeFQYHHbn8heuh9W5ikpoqG4ZhoHoQB9X9H/XK2/lOhMBjkJGrsj0GNb60tDT06tULKpUKrVq1wr1796BWqwEA1atXx5kzZyCXy/HNN98YpVhCSMXjProH+/ljdObyw9dA26ilCSqqfBiNAoprK6B5eVavvKhVFHhVaQOjrAxqfIsWLYJYLMbp06chEAjg4+NT5PH3338f+/btq9ACCSHGwcl6BftPg8FhtKw5+fi5UHfuZaKqKhetPBPyczPAKN/oDgucIW77Nbji0q9HSvRjUONLSkrC7Nmz4e7ujtevXxd73NPTE0+fPq2w4gghRqBUQLwkBLzH99hjfUdAGaz7WB8xnObNZcgvhumV5VVvD2GzeTRgpQIZ1PjUanWRa+H915s3b8Dj0cSzhFgkrRbCjREQnD3KGstq0AL88FU0ibQRqB7thTJto15ZQb2RENT9EBw6RaTCGdT4GjVqhKSkJIwZU/x4AMMwOHDgAA1sIcQCCX7dDmFCDGtG61oL+cu24v7jJ/ClpldhGK0aihuroMlg/8LxlrD5YvBdAoxcVeVmUOMLCQnBhAkT0KxZMwwaVDCSiGEY3Lt3D5GRkTh//jzi4uKMUighxHD8s8cgWr9EZ066Kh5M9RomqKjyYJRvILsQCib/ie4wVwBxu/XgSjyMXxgxrPEFBwfjwYMHWLFiBZYvXw4A+OCDD8AwDLhcLpYsWYJeveggOCHmxr17HfZLJ+vM5S/eCG09muWjImlybkF+boZeWa5TM4haLAGHT5dqMiWDz+ObM2cOhgwZgn379uHu3bvQarWoV68eBg4ciHr16hmjRkKInjgvn0Mye5jOnGzaUmjavmOCiioP1bPfobyxSq8s3+P/YOczDhwO18hVkZKUaeYWLy8vTJs2raJrIYSUlUwK+3mjwX2dyRpTDJkIVdBwExVl+xhGA+XtDVA/2a9XXtgkDHz3rkauiuhCU5YRYs00aohWzwP/aiprTNW5FxTjwmgS6QrCqHIhv/Q5tLm39cqL2q0Dz9HbyFURfRnU+FxcXFiH1nI4HIhEItSqVQvvvPMOpk6dCk9Pz3IXSQgpzu6nDbD7bRdrRlOvIWTzvqFJpCuINu8Baj2ahvxHurNch3oQtfwCHDsn4xdGDGJQ4/v000/x+++/4/r16wgMDIS3tzcYhsHdu3dx4sQJNGnSBB07dsS9e/cQExOD+Ph4/Pbbb2jcuLGx6iek0uGfOABRzFesGUZgh/xVu8BUqWqiqmybOvMUFH8v1yvLr9kLdg2ngUOnhFgsgxqft7c3MjIycObMGTRo0KDIYzdv3kT//v3RsmVLREZG4saNG3j//fcRERGB2NjYCi2akMqId/0CxFGzdOakK34AU7uu8QuycQzDQHXvB6jS2beq37JrOA2C2kFGropUBIMa35o1azB+/PhiTQ8oOLl93LhxWLlyJYYOHYrGjRtjzJgx2LZtW4UVS0hlxHmaDkn4JzpzstCvoPFrZ4KKbBujlkF+dQm0by7plRe1WQWeE12twpoY1PjS09MhFotLfVwikeDhw4eFt+vVqweZTFZidtWqVUhMTMSdO3dgZ2eHtm3bYtGiRWjSpOAXSKVSISIiAkeOHMGDBw/g6OiILl26YNGiRfDwKP0kz1OnTqFfv37F7k9NTS2xYRNisXKzIJk9DByFnDUmHzUL6q79TVSU7dLmP4Xsr6mAJl9nliNyg6jNKnCF1U1QGaloBjW++vXrIy4uDqNGjYJEUvSEy7y8PMTGxhY5l+/Ro0dwcSn5QpVJSUkYO3YsWrduDYZhsGLFCgwcOBBnz55F1apVkZ+fj8uXLyM0NBR+fn7IycnB/PnzMXjwYJw+fRp8PnvpKSkpqFr1n+MbpdVBiMVRKSGOnAHe3RusMWXPwVB+OIVGapaT+tU5KC7P1yvLq/EOHtkNhG8D2sKzZgY1vrCwMIwePRrt27fH8OHDUb9+fQDAvXv3sHPnTjx//hwxMQXzAWq1WuzZswf+/v4lLishIaHI7U2bNsHT0xMpKSno3bs3nJycsHfv3iKZ1atXIyAgALdu3ULTpk1Za3V1dUX16vRtjFgRhoEw5isITh5kjambtoF8VhSg48sfKR3DMFClx0N173u98nY+4yHw/KDgRlqaESsjpmDQX86AAQOwc+dOLF68GCtXrizyWKNGjRAdHY3evXsDKGh8v/zyS5GtLjZ5eXnQarVwdnYuNZObmwsArJm3AgMDoVQq0bBhQ4SGhuKdd2iWCmK5BIfiIdy5njWjda6O/BU/AJLSr5BC2DEaJRTXv4DmxRm98qKWK8Cr1trIVRFT42RlZTFleeLjx4/x6FHBySweHh6oU6dOuQoZNWoU7t69i+PHj5d4aSOlUol+/fqhatWq+Omnn0pdTlpaGk6dOoXWrVtDqVRi165diImJwf79+9GpUyfW5xFialVuX4J3/DqduWtTVkBZ1dUEFdkmrvoNXDNXgafJ0pnVcu3xwm0ONHw6PGLNfH19S32szI2vIs2bNw8JCQk4dOgQ6tatW+xxtVqNcePG4ebNmzh48CCqVatm0PKDg4PB4/FYG6YtSUtLY/2hV3aWsH646WmwX6j7Iq/589dC69vMBBX9wxLWT0XRZP0N+YVQvbK8am0g9Fug84KvtrR+jMEa1k+ZDhJkZmbiypUryM7OhlarLfZ4cHCw3ssKDw9HQkICEhMTS216Y8eOxfXr17F//36Dmx4AtGnTptgxRULMgfP6BSQzdf99yCctgLpDdxNUZJtUjxOhvK17SxoABHWHQ1DvY7rgayViUONTqVSYPn06du/eXdjwGKZgg/HfvzT6Nr6wsDAkJCRg//79JZ5qoFKpMGbMGNy4cQP79++Hm5ubIeUWunr1apmfS0iFUMhgv3ACuM/Z57pSDBwF1aBRpqnJxjBaNZQ3v4b6+RG98kK/BeC7ln74g9gugxpfZGQk4uPjMWfOHHTo0AEDBw7E2rVr4ebmhnXr1uH169dYv579AP1boaGh2LVrF3bs2AFnZ2dkZGQAKDgX0MHBAWq1Gp988gkuXryInTt3gsPhFGaqVKlSeD7hxIkTARSMCgWA9evXw9PTE40bN4ZSqUR8fDwOHDiA7du3G/JWCakYWg1E65aAf+4ka0zVvisUIQsALl2mxlCMMguyi5+BkT7UHeZwIW6/AVyJl/ELIxbLoMa3Z88eDBkyBHPnzsXr168BAHXq1MG7776L7t27o0+fPti+fTuioqJ0Lmvr1q0ACkaK/ltYWBjCw8Px5MkTHDxYMKw7MDCwSGbdunUYMWIEgIJBNv+mUqmwYMECPHv2DCKRCI0bN0Z8fDx69uxpyFslpNzsEmJg9yv7Fy5NrbqQLd4ICNmPK5HiNDlpkJ/T7/Jo3CqNIGoRAY7AwchVEWtgUON7/vx54Xl5b08gl8sLZpXgcDgYMGAA1qxZo1fjy8piH13l5eWlMwMABw4cKHJ7xowZmDFDv6sfE2IM/DNHINqke0Jj6Zo9YKrSyEFDqZ//CcV19km63+LXGQA73wngcGjCaPIPgy9LlJ2dDQBwdHSEWCxGenp64eNqtRp5eXkVWyEhVoJ7+wrsl0/XmctfugVaL8se9WZpGEYLZdomqB//qlfernEoBDV7GLkqYq0Manx+fn44f/48gIItvI4dO2LDhg1o1aoVtFotNm/ejGbNTDv0mhBz42Q8geSzETpzsk9XQNOqowkqsh2MKg/yy/OhzbmpV17U9lvwqtCXCsLOoMb38ccf48cff4RcLodIJMLSpUvRt29fvP/++wAAJycnREREGKVQQiyONBf2YSPBzWXfJa/4cApU7+t/ig8BtNJ0yM6GACh+utR/cSSeELf6Ehw73TM6EQIY2PiCgoIQFPTP9aaaNGmCCxcu4MSJE+DxeOjQoQPNj0lsn1oNUfQc8G9cZI2pAvtBMWoWTSJtAPWLM1BcXapXlu/+HuwazQCHS3OWEsPo/I2pV68eAgICEBAQgA4dOqBVq1YQCASFjzs7OxcbmUmITWIY2O34BnZ//MIa0/g0g2zuKkBgZ6LCrBvDMFDd3w7Vg5165e0aTIagDl2GiZSdzsbXrFkznDx5EocOHQKHw4FIJEKrVq3QoUMHdOjQAe3bt4ejI02aS2wb/8+9EG1fw5ph7B0g/SoWcHAyUVXWjdHIobi6DJrX5/XKi1pHg+dMYwhI+elsfImJidBoNLh8+TJSUlKQnJyM1NRUnDlzBhwOB1wuF02bNkVAQAA6duyIgIAAmiWF2Aze1VSIoz/TmZNG/QjGvfQLJJN/aGXPIftrGqDO1ZnlCF0garMaXBFN0E0qjl47x3k8Hlq3bo3WrVtj8uTJAAquwZecnIyzZ88iJSUFW7ZswZYtW8DhcPDq1SujFk2IsXEf34P952N05mRzV0PTuJUJKrJ+qicHobz1jV5ZnmsnCJuEgcOj3cWk4pX5qHD9+vXh6emJBg0awMfHBwcOHEBqampF1kaIyXGyX8N+ZjA4Gg1rTj42DOp3epuoKusmv7oMmhen9coK6o+GwGsITRhNjMqgxpeTk4PU1NTCXZ4XL16EXC6Hm5sb/P39sWLFCgQEBBirVkKMR6mAeNkU8B7eYY8FDYdyyEQTFWW9GI0c+ScGAdDvqmfCFhHgV29r3KII+R+djS8hIQHJyclITk7GjRs3ABRcbT0gIACffPIJ/P394eVFE74SK6XVQrglEoIz7DP6q1t2gHxGBMClqa/YaPMfQ5YyTr8wzx7idmvBta9l3KII+Q+djW/s2LEQCAQYNGgQli1bhrZt29IoTmITBImxEO7ZwprRurgjPyIGENubqCrrpM44CcW1FXrn7bvsBkdAnyPEPHQ2vs6dO+PChQuIj49HUlIS/P39ERAQAH9/f/j5+YFLl1EhVsbpxnk4ROi++rl01S4w1WmEMhvFzW+gfnpQryy3SkOI2qwGh0OfGcS8DD6dISUlBStXrkRmZiYkEgnatGlTeII7bQ0SS8a9dxP2SyZB14Vp8hdthLZ+I5PUZI0YrQqyMx+DUb7RKy+oNxJ29XTPZUqIqXCysrL0O/r8H3fv3kVKSkrh6Qx37twBl8tFkyZNcPIk+0U3iXGlpaXB15cm6n2L8yoDkllDdeZkUxdD0y7Q+AVZuNJ+f7TyF5CdGan3ckQtvwCvWsuKLM0i0N8XO2tYP2U+ncHb2xteXl7FTmf4+++/K7I+QspOlg/7+aPBfZnBGlMMHg9VP9oiKY361TkoLs/XOy/uFAuukObsJZarQk5nYBgGDg4OCAwMRIcOHYxVKyH60agh+no++JdTWGOqju9BMT4coOPUJVLe/QGq9J/0ynJENSAO+B4cGvVKrIBBpzPcvHkTWq0WDMPAzc0N7733XuHk1c2bN6eBLsTs7HZtgt1B9smO8908oI3YCtgJTVSV9WAYDVyfr4D00TO98vw6AyBsEGLkqgipWHqdzgAU7NocPnx4YaOrX7++0YsjRF/8k79B9F0Ua4bhC5C/ahduZ76CLzW9IhhlFvKThgEABDqyACD0WwC+ayfjFkWIkehsfNu3b0eHDh3g4uJiinoIMQjvxkWIv5ipM5e/PAbaOv/7spZJc8m+pcm+Dvn5WXrnxQExdMI5sXo6G1+/fv1MUQchBuE8fwRJmO4RhrLQL6Hxa2+CiqyL6uHPUN5hP3m/EFcI+y7x4PBoK5nYBrp0MbEuedmQhH4IjkzKGpN/PBPq7nSB5H9jGAbyS+HQvrmkV57nFghR07lGrooQ06PGR6yDSgnxF7PAu8N+uozyvQ+gHDEVoNn9CzFqKfJPfqB3/k21EajTUv/z9QixNtT4iGVjGAi/XwnBif2sMXWT1pDP/hLg06/0W9q8e5ClTtY7L26/HlyH+nialmbEqggxP7Oef7Bq1Sp07doVHh4e8Pb2xtChQ3H9+vUiGYZhEBkZiUaNGsHd3R1BQUGFV4lg8+uvv8Lf3x81atSAv78/EhMTjfU2iJEIDu+Gw6iurE1PW6Uq8tYnQh62ipre/6ie/g7p0V56Nz37d36GpNshcB1opDapHMza+JKSkjB27FgcPnwY+/btA5/Px8CBA/HmzT9zAH799ddYt24doqKicPToUbi6umLQoEHIzc0tdbmpqakYM2YMgoODcerUKQQHB2PUqFE4d+6cKd4WKSfepTNw+CQQwrh1rDnpV3HI//YXQELzwwKA/O9ISI/2gvLmKp1ZbtXWsO/6GyTdDoHDl5igOkIsR5nn6jSGvLw8eHp6IjY2Fr179wbDMGjUqBHGjx+P0NBQAIBMJoOvry+WLVuG0aNHl7ic0aNH482bN9i7d2/hfQMGDICLiwu+++47k7wXc7KGufJKwn14B/YLdF/LLf/zb6Ft4Ffm17HW9VMSRqNA/qnBgFalV97OZwIEnv/HmrGl9WMMtH7YWcP6sah9Q3l5edBqtXB2dgYApKenIyMjA926dSvMiMVidOzYEWfPni218f3111+YMGFCkfu6d++OzZs3G694UmacNy8h+XSwzpx84udQd3zPBBVZPm3+U8hSxuidF7VZBZ5TEyNWRIj1sKjGN3fuXPj5+aF9+4LzrjIyCiYXdnV1LZJzdXXFs2elT6mUkZFR4nMyMzNLfU6ajR3Qt4b3w1Uq0CBmOcQv2afHeta5L54H/u/UhAp6X9awfkoiyr+Eaq/032vxvNYKaHmOQCaATP3fs7WuH1Oh9cPOEtYP21anxTS+efPmISUlBYcOHQKPV3SiW85/hqYzDFPsvv8y9DmWvmluCIvf1aDVQrR+Cfh/nWCNqdu+A/mURXDk8lCRR/Esfv2UQPXkAJS3vtUry3WoB1G7deBwuPAuw2tZ4/oxJVo/7Kxh/VhE4wsPD0dCQgISExNRt27dwvvd3Aqufp2ZmYk6deoU3v/y5ctiW3T/5ubmVmzrTtdziGkIfvkBwr0/sGa0NT2Qv2QzIBSbpigLxTAaKG+vh/rJAb3yAq9hsPMeZdSaCLEFZm98YWFhSEhIwP79+9GgQYMij3l5ecHNzQ3Hjh1D69atAQByuRzJyclYunRpqcts164djh07hunTpxfed+zYMfj7+xvnTRCd+Ml/QrRxmc6cdPVuMNUq9xcURpUL+aV50Obqt7tI2CIC/OptjVwVIbbDrI0vNDQUu3btwo4dO+Ds7Fx4TE8ikcDBwQEcDgchISFYuXIlfH194ePjg+joaEgkEgwe/M9giP79+6NNmzZYtGgRAGDSpEno06cPVq1ahb59+2L//v04deoUDh06ZJb3WZlx0/6GfcRUnbn8pVug9bLs3SPGps27D1mq/pf4EXf8EVxR5f6SQEhZmLXxbd26FUDBqQb/FhYWhvDwcADAjBkzIJPJMGfOHGRlZaFNmzZISEiAo+M/R33u37+P2rVrF9729/dHTEwMIiIiEBkZiXr16iEmJgZt29K3YlPhvHgGSehwnTnZjOXQtK7cl7dRZ56E4u8VemV51dpC2HwROFx9Lh5ECCmJRZ3HRyqGWQ8uS3NhH/4JuNmvWWOK4ZOh6jXEREUVZQkH3xmGgeru91A9jNcrb9dwBgS1exu5qgKWsH4sGa0fdtawfsx+jI/YCLUaolVh4F87zxpTvRsExejQSjuJNKOWQX51id5XSKDz7wipeNT4SPkwDOxi18LuyM+sMY13E8jC1wACOxMVZlm0+U8h+2sKoJHpzHJE7hC1WQmusLoJKiOk8qHGR8qMf/RXiLatZs0wIntIo+MAR2cTVWVZ1K/OQXF5vl5ZXo13IWwyGxxu5fxyQIipUOMjBuP9fQ7ir0J15qRfbAdT09MEFVkWhmGgSt8F1b0f9Mrb+YyHwFP/6+URQsqHGh/RG+fJA0jmjdKZk4WtgqZJa+MXZGEYjRKKa19A8/KMXnlRyxXgVat864kQc6PGR3Ti5LyB/awh4KjYrwAgHx0KdWBfE1VlObTyF5CfnwlG8VJ3WFAF4rbfgCt2N35hhJASUeMjpVMqIF4+DbwHt9ljvYdCOUz/E69thebNVcgvztEry6vWFkK/+eDwREauihCiCzU+UhzDQLjlCwhOH2aNqf3aQz5zBcCrXL9Gqsf7oLy9Xq+soO4ICOp9pHNSdUKI6VSuTyyik+DATgjjN7FmtNXdkL88BhBXnit3M1o1lDfXQP38D73yQr+F4Lt2NHJVhJCyoMZHAAC8c6cg/naBzpx05U9gXCrP8SlGmQXZhc/A5D/UHebwIG6/AVxJ5RvJSog1ocZXyXHv34T94kk6c/kL10PrXXlmENHk3Ib83HTdQQDcKo0harEMHIGDkasihFQEanyVFOdVJiSzdM+VKZ+8CGr/riaoyDKonv0B5Y1ovbL8OgNh5zsBHA7XyFURQioSNb7KRpYP+wXjwH3xlDWm+GAsVP1Hmqgo82IYDZRpm6B+vE+vvLDJHPDduxu5KkKIsVDjqyy0Goi+WQj+xdOsMVWHHlBMmAdwbX8rhlHlQX55PrQ5N/XKi9p9C56jZc86TwjRjRpfJWAXvxl2B+JYMxoPb8gWrgfshCaqynz4qmeQHp0BQKszy5F4QdwqChy7yjnXKCG2iBqfDeMnHYJoyxesGYbHQ/7q3WCcqpmoKvNRvzgNxdVlqKFHll+zJ+waTgeHS38ihNga+qu2QQ7pt+AQMV5nLj8iBlqP+iaoyHwYhoHq3jao0n/SK2/XYAoEdfoZuSpCiDlR47MhnOePIQn7CLqOQslmRUHTwt8kNZkLo5FDcXUpNK8v6JUXtY4Gz7mZkasihFgCany2IC8HkjkfgpOfxxpTfDQdqvf+z0RFmYdW9gyyv6YBavZ1AQAcoStEbVaBK3I1QWWEEEtBjc+aqVUQR80C7/ZV1piy+0AoR84AbHi+SM3rC5BfmqdXViZugertl4HDowu+ElIZUeOzRgwD4bbVEBxjP+9M06gFZHOiAb7ARIWZFsMwUD3cA9Xd7/TKC7zHQOAZjKd37sCFmh4hlRY1PisjOJIA4Y5vWDMqewcooncCEkcTVWVajFYJxfWvoMk8pVde2CIC/OptjVwVIcRaUOOzErzLKRCvmqszJ/1yB27nyOBrg01Pq3hVcMFXeabuMM8e4nZrwbWvZfzCCCFWhRqfheM+vAv7BWN15vLDv4a2UYuCGzlpRq7KtDTZ1yE/P0uvLLdqK4j8FoLDFxu5KkKItTJr4zt9+jS+/fZbXL58Gc+ePcO6deswYsSIwsednUueLWPcuHGIji55IuH09HS0aNGi2P179uxBjx49KqZwE+BkvYJkxgc6c/IJ86Du1NMEFZme6slBKG+x79Z9S+A1DIL6n9AFXwkhOpm18UmlUjRp0gTDhw/HpEnFL41z69atIrcvXryIYcOGYeDAgTqX/fPPP6NZs3/Oy6patWr5CzYFhRzipSHgPb7PGlP2+wjKweNMVJTpMFoNlLe+gfoZ+9Xf3xI2mw9+jc5GrooQYkvM2vh69uyJnj0LtlYmT55c7HE3N7citw8ePAgfHx907qz7g65atWrFnm/RtFoINy6D4Owx1pi6dWfIpy0BuDwTFWYajDIb8ktzoc1jb/hvidtvBNehrnGLIoTYJKs5xpebm4uEhASEhYXplR85ciTkcjm8vb0xefJkDBgwwMgVlp3g1+0QJsSwgV8XHgAAEuhJREFUZrRudZC/dDMgsjdRVaahyb0L+V9T9MpyHRtA1HI5OALbG7hDCDEdq2l8P//8MxQKBYYPH86ac3BwwLJlyxAQEAA+n4+DBw9i9OjR2LBhA4YOHVrq89LSTD8gxPnaX6j3y2adub+nR0FVpRrw6IneyzbH+zGEWHoOVV9v0ysrdeiCbOfBAIcLPHgO4Hm5X9/S14+50fphR+uHnSWsH1/f0idvtJrGt23bNgQFBcHFxYU1V716dUybNq3wdqtWrfD69Wt8/fXXrI2PbSVVOK0W9p99pPNisPlLNkNbtwHqGrj4tLQ0074fPTGMFso7W6F+lKBX3q7xLAhq9oQE0OuKCvqy1PVjKWj9sKP1w84a1o9VNL4rV67g4sWLWLhwYZme36ZNG8TGxlZwVWXHTzrM2vRk05dB06aLCSsyLkYthfzyQmizr+mVF7X9GrwqDY1cFSGksrKKxrdt2zZ4enoiMDCwTM+/evWqRQ104WS/LvF+xdBJUPUZZuJqjEcrfQRZ6mSAUenMcuxrQ9w6Ghw7Kxl9SwixWmZtfHl5ebh37x4AQKvV4vHjx7hy5QqqVq0KDw8PAEB+fj52796N6dOnl3iO1pIlS3D+/Hns21cwb2VcXBwEAgGaN28OLpeLQ4cOYevWrVi8eLHJ3pcuqsAg8JOPgPfkQcHtzr2gGBdmM5NIq1+mQHFlsV5Znls3CBvPBIdrm/OJEkIsj1kb38WLF9Gv3z8X/YyMjERkZCSGDx+ODRs2AAASEhIglUqLnNj+b8+fP8f9+0WHwEdHR+PRo0fg8Xjw9vbG2rVrWY/vmZyjM2QRMYA0B3As+SR9a8MwDFQPYqG6v0OvvJ3vJAg8dJ+PSQghFY2TlZXFmLsIUrFMeXCZ0cih+Hs5NK/+0isvahUFXtXiM+uYkjUcfDcnWj/saP2ws4b1YxXH+Ijl0cqeQ3ZuBqDK1pnl2FWFqO3X4IoqcmwmIYSUDTU+YhDN60uQX9J9lQgA4LkEQNg0HBye0MhVEUKI/qjxEb2oHv0CZdomvbKC+p9A4DWMJowmhFgkanykVIxWBcX1aGgyT+iVFzZfAr6Lv5GrIoSQ8qHGR4rRKl5DfmE2GNkz3WGuEOL268C1r2P8wgghpAJQ4yOFNNk3IT//qV5ZrnNziJovBodvW5NmE0JsHzU+AtXTw1DeXK1XVuA5GALvMeBwuEauihBCjIMaXyXFMBoob6+H+skBvfLCpuHgu71r5KoIIcT4qPFVMowqF/JL4dDm3tErL2q3HjzH+kauihBCTIcaXyWhzbsPWWqIXlmugzdErSLBEVQxclWEEGJ61PhsnDrjJBTXVuiV5dfqDbsGU8Hh8oxcFSGEmA81PlvEaKG88x1UD3frFbdrNAOCWr2NXBQhhFgGanw2hFHnQ35lMWplXYHuK+ABojarwHNqYvS6CCHEklDjswHa/CcFF3zVKnRmOaKaELWJBldY3QSVEUKI5aHGZ8XUL1OhuLJQryyvxrsQNpkNDtfOyFURQohlo8ZnZRiGgSr9J6jubdMrb+czHgLPD4xcFSGEWA9qfFaC0SiguBYJzcsUvfKilpHgVWtl5KoIIcT6UOOzcFr5C8jPzQCjfK07LHCCuO3XuPs4F77VLPsKyIQQYi7U+CyU5s0VyC9+pleWV70dhM0+B4cn+t89ucYrjBBCrBw1PgujerwPytvr9coK6o6AoN5HdMFXQggxADU+C8Bo1VDeXA318z/1ygv9FoHv2sHIVRFCiG2ixmdGjPINZBfmgMl/rDvM4UPcfj24Ek/jF0YIITaMGp8ZaHJuQ35uul5ZrlMTiFosA4cvMXJVhBBSOVDjMyHVsz+gvBGtV5bvMQh2PuPpgq+EEFLBzPqpevr0aQwbNgyNGzeGs7MzYmNjizweEhICZ2fnIv969Oihc7lJSUl499134ebmhhYtWiAmJsZYb0EnhtFAcXs9pEd76dX0hE0+g6TbIQh9J1LTI4QQIzDrFp9UKkWTJk0wfPhwTJo0qcRMYGAgNm3aVHjbzo59yq0HDx5gyJAhGDFiBDZv3oyUlBTMnj0b1atXx4ABAyq0fjaMKg/yy59Dm3NLr7yo3bfgOdK5d4QQYmxmbXw9e/ZEz549AQCTJ08uMSMUCuHm5qb3Mr///nu4u7vjq6++AgA0bNgQ586dw9q1a03S+LR5D/53wVdGZ5YjqQtxqy/AsXM2el2EEEIKWPwxvuTkZPj4+MDJyQmdOnXCggUL4OrqWmo+NTUV3bp1K3Jf9+7dsXPnTqhUKggEAqPUqc5MguLvCL2y/Jo9YddwOjhci1/9hBBicyz6k7dHjx7o168fvLy88PD/27vXmKbuPg7g34qIBBlUbEsR8AbCZHgJRjoixmxuQJwkEzIxc2ydUAXdlIwpuygJw3AJMNxCZhC3JU9AdMRnxKHwRrYVHgcmutWxG4wxhHEZxBIuMij0eUHsYxEK+mhber6fhBec//+UX7854XcuPT2trUhPT0dkZCS+/vprODg4TLlOd3c3tm7darRMIpFAp9Oht7cX7u7uj7TGkT+KMfrHv2Y1d8Hqg7D3fOGR/n0iInowVt34oqL+91SBgIAArF+/HoGBgaiqqkJkZOS0603+JhO9Xj/l8ns1NjY+cH1O/Vfgov33jPN6pIcx4rAKuAPgIf7Ow3iY9yMkzMc05mMa8zHNGvLx9Z3+MxNW3fgmk8vl8PDwQHNz87RzpFIpuru7jZb19PRg/vz5WLx48bTrmQppOkP/OTHtlTyRgxQLN+ZhnsMSmPsOvMbGxod6P0LBfExjPqYxH9PmQj5zqvH19vaio6PD5IddNm3ahIqKCqNl1dXV2LBhwyO/vjdv0XKMDXcaLbOTbIbDmiMQ2fGBr0RE1siijW9gYMBw9DY+Po62tjZoNBqIxWKIxWJkZmYiMjISMpkMra2tSEtLg0QiwQsv/O862b59+wDAcMuDUqnE6dOnkZKSAqVSibq6OpSUlKCoqOiR1+/gn4TR1jKMD93CPJcA2HtH8wujiYisnEUb340bN7Bjxw7D7xkZGcjIyMDu3buRl5eHn376CaWlpejr64NMJkNoaCg+++wzODs7G9ZpazP+nsvly5fj/PnzePfdd/Hpp5/C3d0dWVlZj+VWBtECFyzw2fvIX5eIiB4fiza+0NBQaLXaaccvXLgw42tMPq0JAJs3b8a33377f9VGRES2id+JRUREgsLGR0REgsLGR0REgsLGR0REgsLGR0REgiLSarUzP0aAiIjIRvCIj4iIBIWNj4iIBIWNj4iIBIWNj4iIBIWNj4iIBIWNb47q7OzE/v37sWrVKshkMgQHB6OmpsYwrtfrkZGRAX9/f7i7u2P79u34+eefLVix+YyNjSE9PR1r166FTCbD2rVrkZ6eDp1OZ5gjpHxqa2sRExODJ598Eq6uriguLjYan00WWq0WKpUK3t7e8Pb2hkqlMvk9u3OJqXxGR0eRmpqKkJAQeHh4wM/PD3Fxcbh165bRa/zzzz94++23sXLlSnh4eCAmJgbt7e3mfiuPxUzbz70OHToEV1dXfPzxx0bLrS0fNr45SKvVIiwsDHq9HufPn0ddXR2ys7MhkUgMc06ePImCggJkZWXhypUrkEgkePHFF9Hf32/Bys0jPz8fRUVFyMrKQn19PTIzM3H69Gnk5eUZ5ggpn8HBQaxZswaZmZlwdHS8b3w2WcTFxUGj0eCLL75AWVkZNBqN4ZFgc52pfIaGhvDDDz8gOTkZ33zzDUpKStDe3o7o6GijHal33nkHFy9exJkzZ3Dp0iX09/dj165dGBsbM/fbeeRm2n7uKi8vx/Xr1yGXy+8bs7Z8eB/fHJSWloba2lpUVVVNOa7X6+Hv74/4+HgkJycDAO7cuQNfX1988MEHUCqV5izX7Hbt2gWxWIxTp04Zlu3fvx+3b9/GuXPnBJ3P0qVLkZ2djZdffhnA7LaVX3/9FcHBwaisrIRCoQAAXL16FREREbh27ZrVP237QUzOZyq//PILFAoFamtrERAQgL6+Pvj4+KCgoAAvvfQSgInHpQUGBqKsrAzPPvusucp/7KbLp7W1FWFhYfjyyy8RHR0NlUqFN954AwCsMh8e8c1BFRUVCAoKglKphI+PDzZv3ozCwkLo9RP7MH/++Se6urrwzDPPGNZxdHRESEgI6urqLFW22SgUCtTU1OC3334DMPGPSq1W47nnngPAfO41myzq6+uxaNEiBAcHG+YoFAo4OTkJLi8AhiNhV1dXAMD333+P0dFRoww9PT3h5+cniHx0Oh3i4uKQnJwMPz+/+8atMR+LPo+PHk5LSwvOnDmDxMREHD58GDdv3sTRo0cBACqVCl1dXQBgdOrz7u8dHR1mr9fcDh8+jIGBAQQHB8POzg46nQ7JycmIi4sDAMHnc6/ZZNHd3Q03NzeIRCLDuEgkwpIlS9Dd3W2+Yq3AyMgI3n//fYSHh2Pp0qUAJvKxs7ODm5ub0VyJRCKIfDIyMiAWi7F379QP5bbGfNj45qDx8XFs2LABqampAIB169ahubkZRUVFUKlUhnn3/qMCJk5rTV5miy5cuIDS0lIUFRXB398fN2/eREpKCry9vREbG2uYJ9R8pjJTFlPlIrS8dDodVCoV+vr6cPbs2RnnCyGfmpoalJSUQK1WP/C6lsyHpzrnIJlMdt8phdWrV6Otrc0wDuC+vamenp779uxt0fHjx3Hw4EFERUUhICAAMTExOHDgAD788EMAzOdes8lCKpWip6fHcCodmPin1dvbK5i8dDod9u7di4aGBpSXl2Px4sWGMalUirGxMfT29hqtI4TtSa1Wo7OzE35+fnBzc4Obmxtu3bqF1NRUrFmzBoB15sPGNwcpFAo0NTUZLWtqaoKXlxcAYNmyZZDJZKiurjaMDw8P4+rVq0bXaWzV0NAQ7OzsjJbZ2dlhfHwcAPO512yy2LRpEwYGBlBfX2+YU19fj8HBQUHkNTo6CqVSiYaGBly8eNGws3DX+vXrYW9vb5Rhe3u74UNBtiwuLg61tbVQq9WGH7lcjsTERJSXlwOwznx4qnMOSkxMxPPPP4+cnBzs3LkTGo0GhYWFOHbsGICJ01IJCQnIzc2Fr68vfHx8kJOTAycnJ0RHR1u4+scvPDwc+fn5WLZsGfz9/aHRaFBQUICYmBgAwstnYGAAzc3NACZOk7e1tUGj0UAsFsPLy2vGLPz8/LBt2zYkJSXh5MmT0Ov1SEpKQlhYmE18otNUPnK5HK+++ipu3LiBs2fPQiQSGa6LPvHEE3B0dISLiwteeeUVHD9+HBKJBGKxGO+99x4CAgKwdetWC76zR2Om7WfyUdv8+fMhk8kM24Y15sPbGeaoqqoqpKWloampCZ6enoiPj8e+ffsM58z1ej0yMzPx+eefQ6vVIigoCDk5OYbTD7asv78fJ06cwFdffYWenh7IZDJERUXhyJEjWLhwIQBh5aNWq7Fjx477lu/evRuffPLJrLK4ffs2jh49isuXLwMAIiIikJ2dbfhk41xmKp+UlBSsW7duyvUKCgoMH+sfHh7GsWPHUFZWhuHhYWzZsgW5ubnw9PR8rLWbw0zbz2SBgYFGtzMA1pcPGx8REQkKr/EREZGgsPEREZGgsPEREZGgsPEREZGgsPEREZGgsPEREZGgsPEREZGgsPER2ZDi4mK4urri2rVrRssbGxuRkJCAgIAASKVSrF69GrGxsbh+/bqFKiWyHH5lGZGNu3TpEpRKJZydnbFnzx6sXLkSHR0dKCkpwbZt25CXl4fXXnvN0mUSmQ0bH5ENa2lpQXx8PDw9PXH58mVIpVLD2MGDB7Fz50689dZbCAwMRFBQkAUrJTIfnuoksmEfffQRBgcHkZ+fb9T0AMDJyQmnTp2CXq9Hdna2hSokMj82PiIbVllZCS8vL4SGhk45vmLFCigUClRXV2N4eNjM1RFZBhsfkY3q6+vDX3/9haeeesrkvMDAQIyMjOD33383U2VElsXGR2SjBgYGAADOzs4m590dvzufyNax8RHZqEWLFgGYeD6hKXfHJz9QlMhWsfER2SgXFxfI5XI0NDSYnPfjjz9iwYIFkMvlZqqMyLLY+IhsWEREBFpbW1FTUzPleEtLC7777juEhYXB0dHRzNURWQYbH5ENe/PNN+Hk5ISkpCT8/fffRmNDQ0NISEjAvHnzcOjQIQtVSGR+vIGdyIYtX74chYWFeP311/H0008jNjYWK1asQGdnJ4qLi9He3o7c3Fxs3LjR0qUSmQ0bH5GN2759O9RqNfLy8lBaWoquri6MjY1BJBKhoqICISEhli6RyKxEWq1Wb+kiiMi8KisrsWfPHmzZsgXnzp2Dvb29pUsiMhte4yMSoPDwcOTn5+PKlSs4cOAA9Hru/5Jw8IiPiIgEhUd8REQkKGx8REQkKGx8REQkKGx8REQkKGx8REQkKGx8REQkKGx8REQkKGx8REQkKP8Fni4ZXuYgoagAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "m = smf.ols('hwage ~ T*IQ', data=wage).fit()\n",
    "plt_df = wage.assign(y_hat = m.fittedvalues)\n",
    "\n",
    "plt.plot(plt_df.query(\"T==1\")[\"IQ\"], plt_df.query(\"T==1\")[\"y_hat\"], c=\"C1\", label=\"T=1\")\n",
    "plt.plot(plt_df.query(\"T==0\")[\"IQ\"], plt_df.query(\"T==0\")[\"y_hat\"], c=\"C2\", label=\"T=0\")\n",
    "plt.title(f\"E[T=1|IQ] - E[T=0|IQ] = {round(m.params['T'], 2)}\")\n",
    "plt.ylabel(\"Wage\")\n",
    "plt.xlabel(\"IQ\")\n",
    "plt.legend();"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后，让我们看看我们模型中的所有变量都是哑元的情况。 为此，我们将 IQ 离散为 4 个 bin，并将受教育年限视为一个类别。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>hwage</th>\n",
       "      <th>educ</th>\n",
       "      <th>IQ_bins</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>19.225</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16.160</td>\n",
       "      <td>18</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20.625</td>\n",
       "      <td>14</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16.250</td>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>14.050</td>\n",
       "      <td>11</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    hwage  educ IQ_bins\n",
       "0  19.225    12       1\n",
       "1  16.160    18       3\n",
       "2  20.625    14       2\n",
       "3  16.250    12       1\n",
       "4  14.050    11       0"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wage_ed_bins = (wage\n",
    "                .assign(IQ_bins = lambda d: pd.qcut(d[\"IQ\"], q=4, labels=range(4)))\n",
    "                [[\"hwage\", \"educ\", \"IQ_bins\"]])\n",
    "\n",
    "wage_ed_bins.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将教育视为一个类别，我们不再将教育的效果限制在单个参数上。 相反，我们允许每一年的教育都有自己独特的影响。 通过这样做，我们获得了灵活性，因为教育的效果不再是参数化的。 这个模型只是计算每一年教育的平均工资。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "        <td></td>           <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th>     <td>   18.5600</td> <td>    3.011</td> <td>    6.164</td> <td> 0.000</td> <td>   12.651</td> <td>   24.469</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.10]</th> <td>   -0.7874</td> <td>    3.414</td> <td>   -0.231</td> <td> 0.818</td> <td>   -7.488</td> <td>    5.913</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.11]</th> <td>    0.1084</td> <td>    3.343</td> <td>    0.032</td> <td> 0.974</td> <td>   -6.452</td> <td>    6.669</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.12]</th> <td>    1.7479</td> <td>    3.049</td> <td>    0.573</td> <td> 0.567</td> <td>   -4.236</td> <td>    7.732</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.13]</th> <td>    4.3290</td> <td>    3.183</td> <td>    1.360</td> <td> 0.174</td> <td>   -1.918</td> <td>   10.576</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.14]</th> <td>    4.0888</td> <td>    3.200</td> <td>    1.278</td> <td> 0.202</td> <td>   -2.192</td> <td>   10.370</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.15]</th> <td>    6.3013</td> <td>    3.329</td> <td>    1.893</td> <td> 0.059</td> <td>   -0.231</td> <td>   12.834</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.16]</th> <td>    7.2225</td> <td>    3.110</td> <td>    2.323</td> <td> 0.020</td> <td>    1.120</td> <td>   13.325</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.17]</th> <td>    9.5905</td> <td>    3.366</td> <td>    2.849</td> <td> 0.004</td> <td>    2.984</td> <td>   16.197</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.18]</th> <td>    7.3681</td> <td>    3.264</td> <td>    2.257</td> <td> 0.024</td> <td>    0.962</td> <td>   13.775</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_dummy = smf.ols('hwage ~ C(educ)', data=wage).fit()\n",
    "model_dummy.summary().tables[1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(wage[\"educ\"], wage[\"hwage\"])\n",
    "plt.plot(wage[\"educ\"].sort_values(), model_dummy.predict(wage[\"educ\"].sort_values()), c=\"C1\")\n",
    "plt.xlabel(\"Years of Education\")\n",
    "plt.ylabel(\"Hourly Wage\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先，请注意这如何消除关于教育如何影响工资的功能形式的任何假设。 我们不再需要担心对数函数的处理。 本质上，这个模型是完全非参数化的。 它所做的只是计算每一年教育的样本平均工资。 这可以在上图中看到，其中拟合线没有特定形式。 相反，是对每一年教育的样本均值进行插值。 我们还可以通过重构一个参数来看到这一点，例如对于具备17年教育年限水平的分组的参数。 对于这个模型，它是“9.5905”。 下面，我们可以看到基线教育年限水平 (9) 与 17 年教育年限水平的个人之间的差异\n",
    "\n",
    "$\n",
    "\\beta_{17} = E[Y|T=17]-E[Y|T=9]\n",
    "$\n",
    "\n",
    "需要权衡的点是，当我们允许这种较大的灵活性时，我们会同步失去统计显著性。 请注意某些教育年限水平的 p 值有多大。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "E[Y|T=9]: 18.56\n",
      "E[Y|T=17]-E[Y|T=9]: 9.59047236235352\n"
     ]
    }
   ],
   "source": [
    "t1 = wage.query(\"educ==17\")[\"hwage\"]\n",
    "t0 = wage.query(\"educ==9\")[\"hwage\"]\n",
    "print(\"E[Y|T=9]:\", t0.mean())\n",
    "print(\"E[Y|T=17]-E[Y|T=9]:\", t1.mean() - t0.mean())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果我们在模型中包含更多的虚拟协变量，则教育参数成为对每个虚拟组影响的加权平均值：\n",
    "\n",
    "$\n",
    "E\\{ \\ (E[Y_i|T=1, Group_i] - E[Y_i|T=0, Group_i])w(Group_i) \\ \\}\n",
    "$\n",
    " \n",
    "\\\\(w(Group_i)\\\\) 并不是一成不变的，而是与该样本组中干预因子的方差，即 \\\\(Var(T_i|Group_i)\\\\) 成正比。 由此自然而然产生的一个问题是，为什么不使用完整的非参数估计量，其中组权重是样本量？ 这确实是一个有效的估计量，但它不是回归所做的。 通过使用干预因子的方差，回归将更多的权重放在干预在样本间变化很大的组上。 这是符合直觉的。 如果干预几乎是恒定的（比如 1 个人被干预而其他所有人都未被干预），则其样本大小无关紧要。 它不会提供有关干预效果的太多信息。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table class=\"simpletable\">\n",
       "<tr>\n",
       "         <td></td>            <th>coef</th>     <th>std err</th>      <th>t</th>      <th>P>|t|</th>  <th>[0.025</th>    <th>0.975]</th>  \n",
       "</tr>\n",
       "<tr>\n",
       "  <th>Intercept</th>       <td>   18.4178</td> <td>    2.991</td> <td>    6.158</td> <td> 0.000</td> <td>   12.548</td> <td>   24.288</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.10]</th>   <td>   -1.2149</td> <td>    3.392</td> <td>   -0.358</td> <td> 0.720</td> <td>   -7.872</td> <td>    5.442</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.11]</th>   <td>   -0.4687</td> <td>    3.332</td> <td>   -0.141</td> <td> 0.888</td> <td>   -7.008</td> <td>    6.070</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.12]</th>   <td>    0.3400</td> <td>    3.059</td> <td>    0.111</td> <td> 0.912</td> <td>   -5.664</td> <td>    6.344</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.13]</th>   <td>    2.4103</td> <td>    3.206</td> <td>    0.752</td> <td> 0.452</td> <td>   -3.882</td> <td>    8.702</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.14]</th>   <td>    1.8040</td> <td>    3.238</td> <td>    0.557</td> <td> 0.578</td> <td>   -4.551</td> <td>    8.159</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.15]</th>   <td>    3.8599</td> <td>    3.369</td> <td>    1.146</td> <td> 0.252</td> <td>   -2.752</td> <td>   10.472</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.16]</th>   <td>    4.4060</td> <td>    3.171</td> <td>    1.390</td> <td> 0.165</td> <td>   -1.817</td> <td>   10.629</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.17]</th>   <td>    6.7470</td> <td>    3.422</td> <td>    1.971</td> <td> 0.049</td> <td>    0.030</td> <td>   13.464</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(educ)[T.18]</th>   <td>    4.3463</td> <td>    3.332</td> <td>    1.304</td> <td> 0.192</td> <td>   -2.194</td> <td>   10.886</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(IQ_bins)[T.1]</th> <td>    1.4216</td> <td>    0.898</td> <td>    1.584</td> <td> 0.114</td> <td>   -0.340</td> <td>    3.183</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(IQ_bins)[T.2]</th> <td>    2.9717</td> <td>    0.930</td> <td>    3.195</td> <td> 0.001</td> <td>    1.146</td> <td>    4.797</td>\n",
       "</tr>\n",
       "<tr>\n",
       "  <th>C(IQ_bins)[T.3]</th> <td>    3.7879</td> <td>    1.022</td> <td>    3.708</td> <td> 0.000</td> <td>    1.783</td> <td>    5.793</td>\n",
       "</tr>\n",
       "</table>"
      ],
      "text/plain": [
       "<class 'statsmodels.iolib.table.SimpleTable'>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model_dummy_2 = smf.ols('hwage ~ C(educ) + C(IQ_bins)', data=wage_ed_bins).fit()\n",
    "model_dummy_2.summary().tables[1]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![img](./data/img/dummy/you_little_shit.png)\n",
    "\n",
    "## 关键思想\n",
    "\n",
    "我们通过查看某些数据点如何比其他数据点更重要来开始本节。 即，在估计线性模型时，应给予具有较大样本量和较低方差的样本更多的权重。 然后，我们研究了线性回归如何优雅地处理分组匿名数据，前提是我们在模型中使用了样本的权重。\n",
    "\n",
    "之后，我们进而讨论了虚拟回归。 我们看到虚拟回归如何被设计为一个非参数模型，这类模型对干预因素如何影响结果的函数形式不做任何假设。 最后，我们探索了虚拟回归背后的直观含义。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
